Flutter Code Analysis Report

Generated on 2025-08-01 15:06:27

Project Summary

317
Files Analyzed
6280
Total Issues Found
19.8
Avg Issues per File

Issue Distribution

Issues by File

Metrics Comparison

Detailed File Analysis

C:\Users\PM_User\Documents\upay-mobile\lib\app_icons.dart

Metric Value
Total Lines 209
Code Lines 165
Comment Lines 19
Comment Density 11.5%
Total Issues 6

Issues Found:

Duplication
Line 45
Duplicate code found (appears 2 times)
"assets/images/main/menu_icons/mobile-payments.png";
Duplication
Line 47
Duplicate code found (appears 2 times)
"assets/images/main/menu_icons/mobile-payments.png";
Duplication
Line 73
Duplicate code found (appears 2 times)
"assets/images/main/common/upay-express-logo.png";
Duplication
Line 141
Duplicate code found (appears 2 times)
"assets/images/main/common/upay-express-logo.png";
Duplication
Line 81
Duplicate code found (appears 2 times)
"assets/images/main/lanka_qr/qr-merchant-background.png";
Duplication
Line 87
Duplicate code found (appears 2 times)
"assets/images/main/lanka_qr/qr-merchant-background.png";

C:\Users\PM_User\Documents\upay-mobile\lib\colors.dart

Metric Value
Total Lines 72
Code Lines 63
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\constants.dart

Metric Value
Total Lines 110
Code Lines 95
Comment Lines 1
Comment Density 1.1%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\firebase_options.dart

Metric Value
Total Lines 72
Code Lines 57
Comment Lines 12
Comment Density 21.1%
Total Issues 17

Issues Found:

Duplication
Line 20
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 31
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 36
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 41
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 46
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 22
Duplicate code found (appears 4 times)
"you can reconfigure this by running the FlutterFire CLI again.",
Duplication
Line 33
Duplicate code found (appears 4 times)
"you can reconfigure this by running the FlutterFire CLI again.",
Duplication
Line 38
Duplicate code found (appears 4 times)
"you can reconfigure this by running the FlutterFire CLI again.",
Duplication
Line 43
Duplicate code found (appears 4 times)
"you can reconfigure this by running the FlutterFire CLI again.",
Duplication
Line 55
Duplicate code found (appears 2 times)
messagingSenderId: "698553704239",
Duplication
Line 64
Duplicate code found (appears 2 times)
messagingSenderId: "698553704239",
Duplication
Line 56
Duplicate code found (appears 2 times)
projectId: "heyu-qa",
Duplication
Line 65
Duplicate code found (appears 2 times)
projectId: "heyu-qa",
Duplication
Line 57
Duplicate code found (appears 2 times)
databaseURL: "https://heyu-qa.firebaseio.com",
Duplication
Line 66
Duplicate code found (appears 2 times)
databaseURL: "https://heyu-qa.firebaseio.com",
Duplication
Line 58
Duplicate code found (appears 2 times)
storageBucket: "heyu-qa.appspot.com",
Duplication
Line 67
Duplicate code found (appears 2 times)
storageBucket: "heyu-qa.appspot.com",

C:\Users\PM_User\Documents\upay-mobile\lib\firebase_options_prod.dart

Metric Value
Total Lines 72
Code Lines 57
Comment Lines 12
Comment Density 21.1%
Total Issues 17

Issues Found:

Duplication
Line 20
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 31
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 36
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 41
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 46
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 22
Duplicate code found (appears 4 times)
"you can reconfigure this by running the FlutterFire CLI again.",
Duplication
Line 33
Duplicate code found (appears 4 times)
"you can reconfigure this by running the FlutterFire CLI again.",
Duplication
Line 38
Duplicate code found (appears 4 times)
"you can reconfigure this by running the FlutterFire CLI again.",
Duplication
Line 43
Duplicate code found (appears 4 times)
"you can reconfigure this by running the FlutterFire CLI again.",
Duplication
Line 55
Duplicate code found (appears 2 times)
messagingSenderId: "910537952908",
Duplication
Line 64
Duplicate code found (appears 2 times)
messagingSenderId: "910537952908",
Duplication
Line 56
Duplicate code found (appears 2 times)
projectId: "upay-86543",
Duplication
Line 65
Duplicate code found (appears 2 times)
projectId: "upay-86543",
Duplication
Line 57
Duplicate code found (appears 2 times)
databaseURL: "https://upay-86543.firebaseio.com",
Duplication
Line 66
Duplicate code found (appears 2 times)
databaseURL: "https://upay-86543.firebaseio.com",
Duplication
Line 58
Duplicate code found (appears 2 times)
storageBucket: "upay-86543.appspot.com",
Duplication
Line 67
Duplicate code found (appears 2 times)
storageBucket: "upay-86543.appspot.com",

C:\Users\PM_User\Documents\upay-mobile\lib\injection.dart

Metric Value
Total Lines 45
Code Lines 42
Comment Lines 0
Comment Density 0.0%
Total Issues 1

Issues Found:

Long Method
Line 22
Method is too long (23 lines)
void setupInjection() {

C:\Users\PM_User\Documents\upay-mobile\lib\main.dart

Metric Value
Total Lines 175
Code Lines 155
Comment Lines 5
Comment Density 3.2%
Total Issues 9

Issues Found:

Duplication
Line 96
Duplicate code found (appears 2 times)
appTimeoutTimer?.cancel();
Duplication
Line 171
Duplicate code found (appears 2 times)
appTimeoutTimer?.cancel();
Duplication
Line 107
Duplicate code found (appears 3 times)
isAppTimeoutRunning ? initTime() : null;
Duplication
Line 110
Duplicate code found (appears 3 times)
isAppTimeoutRunning ? initTime() : null;
Duplication
Line 113
Duplicate code found (appears 3 times)
isAppTimeoutRunning ? initTime() : null;
Unused Import
Line 1
Unused import: dart:async
import "dart:async";
Long Method
Line 29
Method is too long (44 lines)
void main() async {
Long Method
Line 102
Method is too long (55 lines)
Widget build(BuildContext context) {
Potential Bug
Line 95
Null check without null-aware operator (?.)
if (appTimeoutTimer != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\parameters.dart

Metric Value
Total Lines 320
Code Lines 255
Comment Lines 28
Comment Density 11.0%
Total Issues 4

Issues Found:

Duplication
Line 57
Duplicate code found (appears 2 times)
switch (Env.appStage) {
Duplication
Line 70
Duplicate code found (appears 2 times)
switch (Env.appStage) {
Duplication
Line 65
Duplicate code found (appears 2 times)
throw Exception("Unexpected value: ${Env.appStage}");
Duplication
Line 78
Duplicate code found (appears 2 times)
throw Exception("Unexpected value: ${Env.appStage}");

C:\Users\PM_User\Documents\upay-mobile\lib\routes.dart

Metric Value
Total Lines 566
Code Lines 502
Comment Lines 21
Comment Density 4.2%
Total Issues 64

Issues Found:

Duplication
Line 196
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 201
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 206
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 211
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 216
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 221
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 228
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 233
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 238
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 243
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 248
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 253
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 258
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 263
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 268
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 275
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 286
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 291
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 297
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 303
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 309
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 315
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 323
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 331
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 337
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 346
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 353
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 362
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 368
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 376
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 382
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 389
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 395
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 403
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 410
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 415
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 422
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 430
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 435
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 440
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 447
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 452
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 460
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 468
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 477
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 486
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 491
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 496
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 501
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 506
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 512
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 517
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 525
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 556
Duplicate code found (appears 54 times)
return MaterialPageRoute(
Duplication
Line 318
Duplicate code found (appears 2 times)
scannedQrDetail: data as ScannedQrDetail,
Duplication
Line 326
Duplicate code found (appears 2 times)
scannedQrDetail: data as ScannedQrDetail,
Duplication
Line 340
Duplicate code found (appears 3 times)
creditCardSettlementRouteData:
Duplication
Line 470
Duplicate code found (appears 3 times)
creditCardSettlementRouteData:
Duplication
Line 479
Duplicate code found (appears 3 times)
creditCardSettlementRouteData:
Duplication
Line 341
Duplicate code found (appears 3 times)
data as CreditCardSettlementRouteData,
Duplication
Line 471
Duplicate code found (appears 3 times)
data as CreditCardSettlementRouteData,
Duplication
Line 480
Duplicate code found (appears 3 times)
data as CreditCardSettlementRouteData,
Duplication
Line 454
Duplicate code found (appears 2 times)
updatePayeeRouteData: data as UpdatePayeeRouteData?,
Duplication
Line 462
Duplicate code found (appears 2 times)
updatePayeeRouteData: data as UpdatePayeeRouteData?,

C:\Users\PM_User\Documents\upay-mobile\lib\shadow_styles.dart

Metric Value
Total Lines 18
Code Lines 16
Comment Lines 0
Comment Density 0.0%
Total Issues 2

Issues Found:

Duplication
Line 9
Duplicate code found (appears 2 times)
offset: Offset(0, 3),
Duplication
Line 14
Duplicate code found (appears 2 times)
offset: Offset(0, 3),

C:\Users\PM_User\Documents\upay-mobile\lib\text_styles.dart

Metric Value
Total Lines 123
Code Lines 103
Comment Lines 0
Comment Density 0.0%
Total Issues 38

Issues Found:

Duplication
Line 7
Duplicate code found (appears 8 times)
color: AppColors.white,
Duplication
Line 33
Duplicate code found (appears 8 times)
color: AppColors.white,
Duplication
Line 39
Duplicate code found (appears 8 times)
color: AppColors.white,
Duplication
Line 54
Duplicate code found (appears 8 times)
color: AppColors.white,
Duplication
Line 65
Duplicate code found (appears 8 times)
color: AppColors.white,
Duplication
Line 83
Duplicate code found (appears 8 times)
color: AppColors.white,
Duplication
Line 87
Duplicate code found (appears 8 times)
color: AppColors.white,
Duplication
Line 93
Duplicate code found (appears 8 times)
color: AppColors.white,
Duplication
Line 12
Duplicate code found (appears 7 times)
color: AppColors.black,
Duplication
Line 17
Duplicate code found (appears 7 times)
color: AppColors.black,
Duplication
Line 22
Duplicate code found (appears 7 times)
color: AppColors.black,
Duplication
Line 28
Duplicate code found (appears 7 times)
color: AppColors.black,
Duplication
Line 44
Duplicate code found (appears 7 times)
color: AppColors.black,
Duplication
Line 59
Duplicate code found (appears 7 times)
color: AppColors.black,
Duplication
Line 69
Duplicate code found (appears 7 times)
color: AppColors.black,
Duplication
Line 13
Duplicate code found (appears 4 times)
fontWeight: FontWeight.w600,
Duplication
Line 18
Duplicate code found (appears 4 times)
fontWeight: FontWeight.w600,
Duplication
Line 35
Duplicate code found (appears 4 times)
fontWeight: FontWeight.w600,
Duplication
Line 105
Duplicate code found (appears 4 times)
fontWeight: FontWeight.w600,
Duplication
Line 19
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.3),
Duplication
Line 70
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.3),
Duplication
Line 23
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w500,
Duplication
Line 71
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w500,
Duplication
Line 24
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1),
Duplication
Line 104
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1),
Duplication
Line 40
Duplicate code found (appears 5 times)
fontSize: Ui.getFontSize(1.1),
Duplication
Line 55
Duplicate code found (appears 5 times)
fontSize: Ui.getFontSize(1.1),
Duplication
Line 60
Duplicate code found (appears 5 times)
fontSize: Ui.getFontSize(1.1),
Duplication
Line 75
Duplicate code found (appears 5 times)
fontSize: Ui.getFontSize(1.1),
Duplication
Line 99
Duplicate code found (appears 5 times)
fontSize: Ui.getFontSize(1.1),
Duplication
Line 45
Duplicate code found (appears 4 times)
fontWeight: FontWeight.w400,
Duplication
Line 61
Duplicate code found (appears 4 times)
fontWeight: FontWeight.w400,
Duplication
Line 100
Duplicate code found (appears 4 times)
fontWeight: FontWeight.w400,
Duplication
Line 121
Duplicate code found (appears 4 times)
fontWeight: FontWeight.w400,
Duplication
Line 98
Duplicate code found (appears 2 times)
color: AppColors.red,
Duplication
Line 103
Duplicate code found (appears 2 times)
color: AppColors.red,
Duplication
Line 115
Duplicate code found (appears 2 times)
color: AppColors.grey1,
Duplication
Line 120
Duplicate code found (appears 2 times)
color: AppColors.grey1,

C:\Users\PM_User\Documents\upay-mobile\lib\models\added_credit_card_payee_detail.dart

Metric Value
Total Lines 52
Code Lines 49
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\api_response.dart

Metric Value
Total Lines 11
Code Lines 9
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\app_banner.dart

Metric Value
Total Lines 16
Code Lines 14
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\app_language.dart

Metric Value
Total Lines 141
Code Lines 121
Comment Lines 0
Comment Density 0.0%
Total Issues 12

Issues Found:

Duplication
Line 35
Duplicate code found (appears 4 times)
return AvailableLanguages.en;
Duplication
Line 47
Duplicate code found (appears 4 times)
return AvailableLanguages.en;
Duplication
Line 132
Duplicate code found (appears 4 times)
return AvailableLanguages.en;
Duplication
Line 138
Duplicate code found (appears 4 times)
return AvailableLanguages.en;
Duplication
Line 39
Duplicate code found (appears 2 times)
return AvailableLanguages.si;
Duplication
Line 134
Duplicate code found (appears 2 times)
return AvailableLanguages.si;
Duplication
Line 43
Duplicate code found (appears 2 times)
return AvailableLanguages.ta;
Duplication
Line 136
Duplicate code found (appears 2 times)
return AvailableLanguages.ta;
Duplication
Line 116
Duplicate code found (appears 2 times)
final prefs = await SharedPreferences.getInstance();
Duplication
Line 124
Duplicate code found (appears 2 times)
final prefs = await SharedPreferences.getInstance();
Unused Import
Line 1
Unused import: dart:convert
import "dart:convert";
Potential Bug
Line 123
Null check without null-aware operator (?.)
if (language != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\models\app_state.dart

Metric Value
Total Lines 275
Code Lines 204
Comment Lines 42
Comment Density 20.6%
Total Issues 14

Issues Found:

Duplication
Line 140
Duplicate code found (appears 3 times)
secondTimer?.cancel();
Duplication
Line 152
Duplicate code found (appears 3 times)
secondTimer?.cancel();
Duplication
Line 207
Duplicate code found (appears 3 times)
secondTimer?.cancel();
Duplication
Line 170
Duplicate code found (appears 2 times)
.isAfter(refreshTokenExpiredTIme ?? DateTime.now()))
Duplication
Line 187
Duplicate code found (appears 2 times)
.isAfter(refreshTokenExpiredTIme ?? DateTime.now()))
Duplication
Line 175
Duplicate code found (appears 2 times)
[seconds.toString()],
Duplication
Line 182
Duplicate code found (appears 2 times)
[seconds.toString()],
Unused Import
Line 1
Unused import: dart:async
import "dart:async";
Unused Import
Line 2
Unused import: dart:convert
import "dart:convert";
Long Method
Line 113
Method is too long (150 lines)
void appTimeout(BuildContext? ctx) {
Potential Bug
Line 72
Null check without null-aware operator (?.)
// if (context != null) {
Potential Bug
Line 81
Null check without null-aware operator (?.)
// if (_timer != null) {
Potential Bug
Line 114
Null check without null-aware operator (?.)
if (context != null) {
Potential Bug
Line 123
Null check without null-aware operator (?.)
if (_timer != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\models\bank.dart

Metric Value
Total Lines 49
Code Lines 45
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\banking_account.dart

Metric Value
Total Lines 123
Code Lines 103
Comment Lines 8
Comment Density 7.8%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\banking_route_data.dart

Metric Value
Total Lines 8
Code Lines 6
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\banking_summary_detail.dart

Metric Value
Total Lines 41
Code Lines 38
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\banking_transaction.dart

Metric Value
Total Lines 53
Code Lines 36
Comment Lines 15
Comment Density 41.7%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\bank_account.dart

Metric Value
Total Lines 52
Code Lines 48
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\biller.dart

Metric Value
Total Lines 61
Code Lines 54
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\biller_category.dart

Metric Value
Total Lines 16
Code Lines 14
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\biller_field.dart

Metric Value
Total Lines 77
Code Lines 70
Comment Lines 0
Comment Density 0.0%
Total Issues 8

Issues Found:

Duplication
Line 41
Duplicate code found (appears 2 times)
if (keyboardType == "NUMERIC") {
Duplication
Line 53
Duplicate code found (appears 2 times)
if (keyboardType == "NUMERIC") {
Duplication
Line 43
Duplicate code found (appears 2 times)
} else if (keyboardType == "PHONE") {
Duplication
Line 55
Duplicate code found (appears 2 times)
} else if (keyboardType == "PHONE") {
Duplication
Line 45
Duplicate code found (appears 2 times)
} else if (keyboardType == "AMOUNT") {
Duplication
Line 57
Duplicate code found (appears 2 times)
} else if (keyboardType == "AMOUNT") {
Duplication
Line 54
Duplicate code found (appears 2 times)
return [FilteringTextInputFormatter.digitsOnly];
Duplication
Line 56
Duplicate code found (appears 2 times)
return [FilteringTextInputFormatter.digitsOnly];

C:\Users\PM_User\Documents\upay-mobile\lib\models\biller_payment_model.dart

Metric Value
Total Lines 21
Code Lines 20
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\billler_fee.dart

Metric Value
Total Lines 16
Code Lines 14
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\bp_transaction_detail.dart

Metric Value
Total Lines 48
Code Lines 45
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\cc_transaction_detail.dart

Metric Value
Total Lines 86
Code Lines 83
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\country.dart

Metric Value
Total Lines 13
Code Lines 12
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\credit_card_settlements_route_data.dart

Metric Value
Total Lines 24
Code Lines 22
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\credit_card_settlement_payee.dart

Metric Value
Total Lines 77
Code Lines 70
Comment Lines 1
Comment Density 1.4%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\credit_card_settlement_success_data.dart

Metric Value
Total Lines 17
Code Lines 16
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\drop_down_model.dart

Metric Value
Total Lines 7
Code Lines 6
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\fixed_balance.dart

Metric Value
Total Lines 48
Code Lines 45
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\fixed_deposit.dart

Metric Value
Total Lines 50
Code Lines 46
Comment Lines 0
Comment Density 0.0%
Total Issues 2

Issues Found:

Potential Bug
Line 29
Null check without null-aware operator (?.)
fixedBalanceResponse: map["fixedBalanceResponse"] != null &&
Potential Bug
Line 30
Null check without null-aware operator (?.)
map["fixedBalanceResponse"]["fixedBalance"] != null

C:\Users\PM_User\Documents\upay-mobile\lib\models\ft_transaction_detail.dart

Metric Value
Total Lines 83
Code Lines 80
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\init_credit_card_settlement_detail.dart

Metric Value
Total Lines 47
Code Lines 44
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\inquiry_list_model.dart

Metric Value
Total Lines 13
Code Lines 10
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\loans.dart

Metric Value
Total Lines 86
Code Lines 76
Comment Lines 0
Comment Density 0.0%
Total Issues 2

Issues Found:

Potential Bug
Line 31
Null check without null-aware operator (?.)
loanBalanceResponse: map["loanBalanceResponse"] != null &&
Potential Bug
Line 32
Null check without null-aware operator (?.)
map["loanBalanceResponse"]["loanDetails"] != null

C:\Users\PM_User\Documents\upay-mobile\lib\models\loans_history.dart

Metric Value
Total Lines 24
Code Lines 21
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\loan_details.dart

Metric Value
Total Lines 64
Code Lines 61
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\mobile_payment_detail.dart

Metric Value
Total Lines 15
Code Lines 13
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\my_payees_details.dart

Metric Value
Total Lines 7
Code Lines 6
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\notification_state.dart

Metric Value
Total Lines 14
Code Lines 12
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\offenses_model.dart

Metric Value
Total Lines 23
Code Lines 20
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\payee_category.dart

Metric Value
Total Lines 19
Code Lines 0
Comment Lines 19
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\payment_source.dart

Metric Value
Total Lines 75
Code Lines 71
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\police_station_list_model.dart

Metric Value
Total Lines 15
Code Lines 12
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\qr_payment_detail.dart

Metric Value
Total Lines 65
Code Lines 62
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\register_data.dart

Metric Value
Total Lines 51
Code Lines 38
Comment Lines 6
Comment Density 15.8%
Total Issues 1

Issues Found:

Unused Import
Line 1
Unused import: dart:convert
import "dart:convert";

C:\Users\PM_User\Documents\upay-mobile\lib\models\saved_payee.dart

Metric Value
Total Lines 59
Code Lines 53
Comment Lines 1
Comment Density 1.9%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\scanned_qr_detail.dart

Metric Value
Total Lines 51
Code Lines 49
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\sdb_product_item.dart

Metric Value
Total Lines 139
Code Lines 111
Comment Lines 18
Comment Density 16.2%
Total Issues 6

Issues Found:

Duplication
Line 58
Duplicate code found (appears 3 times)
(savingsAccount) => BankingAccount.fromJson(savingsAccount)
Duplication
Line 64
Duplicate code found (appears 3 times)
(savingsAccount) => BankingAccount.fromJson(savingsAccount)
Duplication
Line 70
Duplicate code found (appears 3 times)
(savingsAccount) => BankingAccount.fromJson(savingsAccount)
Duplication
Line 59
Duplicate code found (appears 3 times)
..sessionKey = sessionKey,
Duplication
Line 65
Duplicate code found (appears 3 times)
..sessionKey = sessionKey,
Duplication
Line 71
Duplicate code found (appears 3 times)
..sessionKey = sessionKey,

C:\Users\PM_User\Documents\upay-mobile\lib\models\sdb_user_detail.dart

Metric Value
Total Lines 14
Code Lines 12
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\tnc_model.dart

Metric Value
Total Lines 12
Code Lines 10
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\traffic_fines_model.dart

Metric Value
Total Lines 87
Code Lines 80
Comment Lines 0
Comment Density 0.0%
Total Issues 21

Issues Found:

Duplication
Line 5
Duplicate code found (appears 2 times)
int? policeStationId;
Duplication
Line 70
Duplicate code found (appears 2 times)
int? policeStationId;
Duplication
Line 11
Duplicate code found (appears 2 times)
String? policeStationContactNumber;
Duplication
Line 72
Duplicate code found (appears 2 times)
String? policeStationContactNumber;
Duplication
Line 12
Duplicate code found (appears 2 times)
String? policeStationName;
Duplication
Line 71
Duplicate code found (appears 2 times)
String? policeStationName;
Duplication
Line 19
Duplicate code found (appears 2 times)
this.policeStationId,
Duplication
Line 75
Duplicate code found (appears 2 times)
this.policeStationId,
Duplication
Line 25
Duplicate code found (appears 2 times)
this.policeStationContactNumber,
Duplication
Line 77
Duplicate code found (appears 2 times)
this.policeStationContactNumber,
Duplication
Line 26
Duplicate code found (appears 2 times)
this.policeStationName,
Duplication
Line 76
Duplicate code found (appears 2 times)
this.policeStationName,
Duplication
Line 30
Duplicate code found (appears 3 times)
Map toJson() {
Duplication
Line 60
Duplicate code found (appears 3 times)
Map toJson() {
Duplication
Line 80
Duplicate code found (appears 3 times)
Map toJson() {
Duplication
Line 35
Duplicate code found (appears 2 times)
'police_station_id': policeStationId,
Duplication
Line 82
Duplicate code found (appears 2 times)
'police_station_id': policeStationId,
Duplication
Line 41
Duplicate code found (appears 2 times)
'police_station_contact_number': policeStationContactNumber,
Duplication
Line 84
Duplicate code found (appears 2 times)
'police_station_contact_number': policeStationContactNumber,
Duplication
Line 42
Duplicate code found (appears 2 times)
'police_station_name': policeStationName,
Duplication
Line 83
Duplicate code found (appears 2 times)
'police_station_name': policeStationName,

C:\Users\PM_User\Documents\upay-mobile\lib\models\transaction.dart

Metric Value
Total Lines 21
Code Lines 2
Comment Lines 19
Comment Density 950.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\transaction_history_data.dart

Metric Value
Total Lines 123
Code Lines 107
Comment Lines 13
Comment Density 12.1%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\uearn_detsils.dart

Metric Value
Total Lines 27
Code Lines 25
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\user.dart

Metric Value
Total Lines 57
Code Lines 52
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\user_device.dart

Metric Value
Total Lines 22
Code Lines 20
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\u_connect_branch_model.dart

Metric Value
Total Lines 14
Code Lines 11
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\u_connect_category_list_model.dart

Metric Value
Total Lines 19
Code Lines 17
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\u_connect_ticket_list_model.dart

Metric Value
Total Lines 32
Code Lines 30
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\u_connect_tread_list_model.dart

Metric Value
Total Lines 35
Code Lines 32
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\u_friend.dart

Metric Value
Total Lines 35
Code Lines 34
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\welcome_details.dart

Metric Value
Total Lines 17
Code Lines 15
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\dto\my_wallets_screen_route_data.dart

Metric Value
Total Lines 11
Code Lines 9
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\dto\sdb_product_info.dart

Metric Value
Total Lines 11
Code Lines 0
Comment Lines 10
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\dto\sign_up_images_data.dart

Metric Value
Total Lines 13
Code Lines 11
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\dto\sign_up_image_dto.dart

Metric Value
Total Lines 13
Code Lines 11
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\dto\summary_detail.dart

Metric Value
Total Lines 20
Code Lines 17
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\dto\update_payee_route_data.dart

Metric Value
Total Lines 12
Code Lines 10
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\enums\attachment_type.dart

Metric Value
Total Lines 74
Code Lines 50
Comment Lines 21
Comment Density 42.0%
Total Issues 10

Issues Found:

Duplication
Line 14
Duplicate code found (appears 2 times)
case AttachmentType.PDF:
Duplication
Line 35
Duplicate code found (appears 2 times)
case AttachmentType.PDF:
Duplication
Line 16
Duplicate code found (appears 2 times)
case AttachmentType.PNG:
Duplication
Line 37
Duplicate code found (appears 2 times)
case AttachmentType.PNG:
Duplication
Line 22
Duplicate code found (appears 2 times)
case AttachmentType.JPG:
Duplication
Line 43
Duplicate code found (appears 2 times)
case AttachmentType.JPG:
Duplication
Line 24
Duplicate code found (appears 2 times)
case AttachmentType.JPEG:
Duplication
Line 45
Duplicate code found (appears 2 times)
case AttachmentType.JPEG:
Duplication
Line 66
Duplicate code found (appears 2 times)
return AttachmentType.JPG;
Duplication
Line 72
Duplicate code found (appears 2 times)
return AttachmentType.JPG;

C:\Users\PM_User\Documents\upay-mobile\lib\models\enums\auth_method.dart

Metric Value
Total Lines 8
Code Lines 7
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\enums\bill_pay_screens_view.dart

Metric Value
Total Lines 5
Code Lines 5
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\enums\device_description_type.dart

Metric Value
Total Lines 14
Code Lines 12
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\enums\my_payees_views.dart

Metric Value
Total Lines 5
Code Lines 5
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\enums\other_accounts_views.dart

Metric Value
Total Lines 5
Code Lines 5
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\enums\payment_method.dart

Metric Value
Total Lines 18
Code Lines 16
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\enums\payment_source.dart

Metric Value
Total Lines 8
Code Lines 7
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\enums\payment_type.dart

Metric Value
Total Lines 79
Code Lines 71
Comment Lines 0
Comment Density 0.0%
Total Issues 2

Issues Found:

Duplication
Line 33
Duplicate code found (appears 2 times)
if (this == PaymentType.fundTransfer || this == PaymentType.creditCard) {
Duplication
Line 41
Duplicate code found (appears 2 times)
if (this == PaymentType.fundTransfer || this == PaymentType.creditCard) {

C:\Users\PM_User\Documents\upay-mobile\lib\models\enums\sdb_account_views.dart

Metric Value
Total Lines 6
Code Lines 6
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\enums\settlement_card_type.dart

Metric Value
Total Lines 54
Code Lines 41
Comment Lines 0
Comment Density 0.0%
Total Issues 12

Issues Found:

Duplication
Line 13
Duplicate code found (appears 2 times)
case SettlementCardType.visa:
Duplication
Line 35
Duplicate code found (appears 2 times)
case SettlementCardType.visa:
Duplication
Line 16
Duplicate code found (appears 2 times)
case SettlementCardType.master:
Duplication
Line 38
Duplicate code found (appears 2 times)
case SettlementCardType.master:
Duplication
Line 19
Duplicate code found (appears 2 times)
case SettlementCardType.amex:
Duplication
Line 41
Duplicate code found (appears 2 times)
case SettlementCardType.amex:
Duplication
Line 22
Duplicate code found (appears 2 times)
case SettlementCardType.mcash:
Duplication
Line 47
Duplicate code found (appears 2 times)
case SettlementCardType.mcash:
Duplication
Line 25
Duplicate code found (appears 2 times)
case SettlementCardType.jcb:
Duplication
Line 44
Duplicate code found (appears 2 times)
case SettlementCardType.jcb:
Duplication
Line 28
Duplicate code found (appears 2 times)
case SettlementCardType.none:
Duplication
Line 50
Duplicate code found (appears 2 times)
case SettlementCardType.none:

C:\Users\PM_User\Documents\upay-mobile\lib\models\enums\transaction_status.dart

Metric Value
Total Lines 72
Code Lines 58
Comment Lines 0
Comment Density 0.0%
Total Issues 11

Issues Found:

Duplication
Line 27
Duplicate code found (appears 3 times)
case TransactionStatus.success:
Duplication
Line 43
Duplicate code found (appears 3 times)
case TransactionStatus.success:
Duplication
Line 59
Duplicate code found (appears 3 times)
case TransactionStatus.success:
Duplication
Line 30
Duplicate code found (appears 3 times)
case TransactionStatus.fail:
Duplication
Line 46
Duplicate code found (appears 3 times)
case TransactionStatus.fail:
Duplication
Line 62
Duplicate code found (appears 3 times)
case TransactionStatus.fail:
Duplication
Line 33
Duplicate code found (appears 3 times)
case TransactionStatus.successWithTimeout:
Duplication
Line 49
Duplicate code found (appears 3 times)
case TransactionStatus.successWithTimeout:
Duplication
Line 65
Duplicate code found (appears 3 times)
case TransactionStatus.successWithTimeout:
Duplication
Line 47
Duplicate code found (appears 2 times)
return AppColors.red;
Duplication
Line 53
Duplicate code found (appears 2 times)
return AppColors.red;

C:\Users\PM_User\Documents\upay-mobile\lib\models\enums\transfer_settings_views.dart

Metric Value
Total Lines 4
Code Lines 4
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\enums\transfer_type.dart

Metric Value
Total Lines 28
Code Lines 23
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\models\enums\uearn_redeem_type.dart

Metric Value
Total Lines 73
Code Lines 58
Comment Lines 0
Comment Density 0.0%
Total Issues 18

Issues Found:

Duplication
Line 11
Duplicate code found (appears 4 times)
case UEarnRedeemType.upayPayment:
Duplication
Line 27
Duplicate code found (appears 4 times)
case UEarnRedeemType.upayPayment:
Duplication
Line 42
Duplicate code found (appears 4 times)
case UEarnRedeemType.upayPayment:
Duplication
Line 57
Duplicate code found (appears 4 times)
case UEarnRedeemType.upayPayment:
Duplication
Line 14
Duplicate code found (appears 4 times)
case UEarnRedeemType.upayMerchant:
Duplication
Line 30
Duplicate code found (appears 4 times)
case UEarnRedeemType.upayMerchant:
Duplication
Line 45
Duplicate code found (appears 4 times)
case UEarnRedeemType.upayMerchant:
Duplication
Line 60
Duplicate code found (appears 4 times)
case UEarnRedeemType.upayMerchant:
Duplication
Line 17
Duplicate code found (appears 4 times)
case UEarnRedeemType.transfer:
Duplication
Line 33
Duplicate code found (appears 4 times)
case UEarnRedeemType.transfer:
Duplication
Line 48
Duplicate code found (appears 4 times)
case UEarnRedeemType.transfer:
Duplication
Line 63
Duplicate code found (appears 4 times)
case UEarnRedeemType.transfer:
Duplication
Line 20
Duplicate code found (appears 4 times)
case UEarnRedeemType.demo:
Duplication
Line 35
Duplicate code found (appears 4 times)
case UEarnRedeemType.demo:
Duplication
Line 50
Duplicate code found (appears 4 times)
case UEarnRedeemType.demo:
Duplication
Line 65
Duplicate code found (appears 4 times)
case UEarnRedeemType.demo:
Duplication
Line 49
Duplicate code found (appears 2 times)
return ScreenRoutes.toFundTransferScreen;
Duplication
Line 51
Duplicate code found (appears 2 times)
return ScreenRoutes.toFundTransferScreen;

C:\Users\PM_User\Documents\upay-mobile\lib\models\enums\uearn_share_type.dart

Metric Value
Total Lines 18
Code Lines 15
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\observers\app_focus_observer.dart

Metric Value
Total Lines 18
Code Lines 15
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\observers\navigation_observer.dart

Metric Value
Total Lines 67
Code Lines 55
Comment Lines 0
Comment Density 0.0%
Total Issues 4

Issues Found:

Duplication
Line 41
Duplicate code found (appears 2 times)
appTimeoutTimer?.cancel();
Duplication
Line 63
Duplicate code found (appears 2 times)
appTimeoutTimer?.cancel();
Unused Import
Line 1
Unused import: dart:async
import "dart:async";
Long Method
Line 23
Method is too long (26 lines)
void didPush(Route route, Route? previousRoute) {

C:\Users\PM_User\Documents\upay-mobile\lib\old\firebase_options.dart

Metric Value
Total Lines 70
Code Lines 55
Comment Lines 12
Comment Density 21.8%
Total Issues 15

Issues Found:

Duplication
Line 20
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 31
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 36
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 41
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 46
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 22
Duplicate code found (appears 4 times)
"you can reconfigure this by running the FlutterFire CLI again.",
Duplication
Line 33
Duplicate code found (appears 4 times)
"you can reconfigure this by running the FlutterFire CLI again.",
Duplication
Line 38
Duplicate code found (appears 4 times)
"you can reconfigure this by running the FlutterFire CLI again.",
Duplication
Line 43
Duplicate code found (appears 4 times)
"you can reconfigure this by running the FlutterFire CLI again.",
Duplication
Line 55
Duplicate code found (appears 2 times)
messagingSenderId: "254768461142",
Duplication
Line 63
Duplicate code found (appears 2 times)
messagingSenderId: "254768461142",
Duplication
Line 56
Duplicate code found (appears 2 times)
projectId: "common-app-e4c87",
Duplication
Line 64
Duplicate code found (appears 2 times)
projectId: "common-app-e4c87",
Duplication
Line 57
Duplicate code found (appears 2 times)
storageBucket: "common-app-e4c87.appspot.com",
Duplication
Line 65
Duplicate code found (appears 2 times)
storageBucket: "common-app-e4c87.appspot.com",

C:\Users\PM_User\Documents\upay-mobile\lib\old\firebase_options_invalid.dart

Metric Value
Total Lines 68
Code Lines 53
Comment Lines 12
Comment Density 22.6%
Total Issues 15

Issues Found:

Duplication
Line 20
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 31
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 36
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 41
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 46
Duplicate code found (appears 5 times)
throw UnsupportedError(
Duplication
Line 22
Duplicate code found (appears 4 times)
"you can reconfigure this by running the FlutterFire CLI again.",
Duplication
Line 33
Duplicate code found (appears 4 times)
"you can reconfigure this by running the FlutterFire CLI again.",
Duplication
Line 38
Duplicate code found (appears 4 times)
"you can reconfigure this by running the FlutterFire CLI again.",
Duplication
Line 43
Duplicate code found (appears 4 times)
"you can reconfigure this by running the FlutterFire CLI again.",
Duplication
Line 55
Duplicate code found (appears 2 times)
messagingSenderId: "596847764696",
Duplication
Line 63
Duplicate code found (appears 2 times)
messagingSenderId: "596847764696",
Duplication
Line 56
Duplicate code found (appears 2 times)
projectId: "upay-2d801",
Duplication
Line 64
Duplicate code found (appears 2 times)
projectId: "upay-2d801",
Duplication
Line 57
Duplicate code found (appears 2 times)
storageBucket: "upay-2d801.appspot.com",
Duplication
Line 65
Duplicate code found (appears 2 times)
storageBucket: "upay-2d801.appspot.com",

C:\Users\PM_User\Documents\upay-mobile\lib\providers\app_language_provider.dart

Metric Value
Total Lines 28
Code Lines 25
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\providers\app_state_provider.dart

Metric Value
Total Lines 7
Code Lines 6
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\providers\notification_provider.dart

Metric Value
Total Lines 17
Code Lines 15
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\repository\account_repo.dart

Metric Value
Total Lines 760
Code Lines 706
Comment Lines 5
Comment Density 0.7%
Total Issues 239

Issues Found:

Duplication
Line 28
Duplicate code found (appears 5 times)
required BuildContext context,
Duplication
Line 91
Duplicate code found (appears 5 times)
required BuildContext context,
Duplication
Line 290
Duplicate code found (appears 5 times)
required BuildContext context,
Duplication
Line 319
Duplicate code found (appears 5 times)
required BuildContext context,
Duplication
Line 596
Duplicate code found (appears 5 times)
required BuildContext context,
Duplication
Line 30
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 69
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 93
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 119
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 150
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 208
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 235
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 263
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 294
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 322
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 331
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 363
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 405
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 443
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 476
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 511
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 545
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 574
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 702
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 731
Duplicate code found (appears 20 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 31
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 70
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 94
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 120
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 151
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 183
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 209
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 236
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 264
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 295
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 323
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 332
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 364
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 406
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 444
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 477
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 512
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 546
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 575
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 703
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 732
Duplicate code found (appears 21 times)
Function()? onComplete,
Duplication
Line 33
Duplicate code found (appears 2 times)
final String sessionKey = await CryptoUtil.generateAesKey();
Duplication
Line 334
Duplicate code found (appears 2 times)
final String sessionKey = await CryptoUtil.generateAesKey();
Duplication
Line 34
Duplicate code found (appears 2 times)
final String encryptedSessionKey = await encrypt(sessionKey);
Duplication
Line 335
Duplicate code found (appears 2 times)
final String encryptedSessionKey = await encrypt(sessionKey);
Duplication
Line 39
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 78
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 100
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 132
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 164
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 193
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 218
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 246
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 277
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 306
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 342
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 379
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 419
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 456
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 490
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 525
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 557
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 582
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 709
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 746
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 44
Duplicate code found (appears 2 times)
final BankAccount bankAccount = BankAccount.fromJson(e);
Duplication
Line 49
Duplicate code found (appears 2 times)
final BankAccount bankAccount = BankAccount.fromJson(e);
Duplication
Line 56
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 81
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 103
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 135
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 167
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 196
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 221
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 249
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 282
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 309
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 347
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 388
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 427
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 464
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 499
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 534
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 560
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 586
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 692
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 712
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 752
Duplicate code found (appears 21 times)
failed: (title, message, data) {
Duplication
Line 57
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 82
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 104
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 136
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 168
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 197
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 222
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 250
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 283
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 310
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 348
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 389
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 428
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 465
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 500
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 535
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 561
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 587
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 713
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 753
Duplicate code found (appears 20 times)
onFail?.call(title, message, data);
Duplication
Line 66
Duplicate code found (appears 17 times)
BuildContext context, {
Duplication
Line 113
Duplicate code found (appears 17 times)
BuildContext context, {
Duplication
Line 145
Duplicate code found (appears 17 times)
BuildContext context, {
Duplication
Line 177
Duplicate code found (appears 17 times)
BuildContext context, {
Duplication
Line 206
Duplicate code found (appears 17 times)
BuildContext context, {
Duplication
Line 231
Duplicate code found (appears 17 times)
BuildContext context, {
Duplication
Line 259
Duplicate code found (appears 17 times)
BuildContext context, {
Duplication
Line 329
Duplicate code found (appears 17 times)
BuildContext context, {
Duplication
Line 355
Duplicate code found (appears 17 times)
BuildContext context, {
Duplication
Line 396
Duplicate code found (appears 17 times)
BuildContext context, {
Duplication
Line 435
Duplicate code found (appears 17 times)
BuildContext context, {
Duplication
Line 472
Duplicate code found (appears 17 times)
BuildContext context, {
Duplication
Line 507
Duplicate code found (appears 17 times)
BuildContext context, {
Duplication
Line 542
Duplicate code found (appears 17 times)
BuildContext context, {
Duplication
Line 570
Duplicate code found (appears 17 times)
BuildContext context, {
Duplication
Line 700
Duplicate code found (appears 17 times)
BuildContext context, {
Duplication
Line 722
Duplicate code found (appears 17 times)
BuildContext context, {
Duplication
Line 68
Duplicate code found (appears 8 times)
Function(Map data)? onSuccess,
Duplication
Line 92
Duplicate code found (appears 8 times)
Function(Map data)? onSuccess,
Duplication
Line 118
Duplicate code found (appears 8 times)
Function(Map data)? onSuccess,
Duplication
Line 149
Duplicate code found (appears 8 times)
Function(Map data)? onSuccess,
Duplication
Line 180
Duplicate code found (appears 8 times)
Function(Map data)? onSuccess,
Duplication
Line 234
Duplicate code found (appears 8 times)
Function(Map data)? onSuccess,
Duplication
Line 544
Duplicate code found (appears 8 times)
Function(Map data)? onSuccess,
Duplication
Line 701
Duplicate code found (appears 8 times)
Function(Map data)? onSuccess,
Duplication
Line 79
Duplicate code found (appears 8 times)
onSuccess?.call(data);
Duplication
Line 101
Duplicate code found (appears 8 times)
onSuccess?.call(data);
Duplication
Line 133
Duplicate code found (appears 8 times)
onSuccess?.call(data);
Duplication
Line 165
Duplicate code found (appears 8 times)
onSuccess?.call(data);
Duplication
Line 194
Duplicate code found (appears 8 times)
onSuccess?.call(data);
Duplication
Line 247
Duplicate code found (appears 8 times)
onSuccess?.call(data);
Duplication
Line 558
Duplicate code found (appears 8 times)
onSuccess?.call(data);
Duplication
Line 710
Duplicate code found (appears 8 times)
onSuccess?.call(data);
Duplication
Line 114
Duplicate code found (appears 5 times)
required String accountNumber,
Duplication
Line 260
Duplicate code found (appears 5 times)
required String accountNumber,
Duplication
Line 397
Duplicate code found (appears 5 times)
required String accountNumber,
Duplication
Line 436
Duplicate code found (appears 5 times)
required String accountNumber,
Duplication
Line 599
Duplicate code found (appears 5 times)
required String accountNumber,
Duplication
Line 153
Duplicate code found (appears 3 times)
final lpIdentityExists =
Duplication
Line 548
Duplicate code found (appears 3 times)
final lpIdentityExists =
Duplication
Line 734
Duplicate code found (appears 3 times)
final lpIdentityExists =
Duplication
Line 154
Duplicate code found (appears 3 times)
Env.bypassLcSdkCheck ? true : await LpFlutterPlugin.isIdentityExists();
Duplication
Line 549
Duplicate code found (appears 3 times)
Env.bypassLcSdkCheck ? true : await LpFlutterPlugin.isIdentityExists();
Duplication
Line 735
Duplicate code found (appears 3 times)
Env.bypassLcSdkCheck ? true : await LpFlutterPlugin.isIdentityExists();
Duplication
Line 160
Duplicate code found (appears 3 times)
"is_identity_exists": lpIdentityExists,
Duplication
Line 554
Duplicate code found (appears 3 times)
"is_identity_exists": lpIdentityExists,
Duplication
Line 743
Duplicate code found (appears 3 times)
"is_identity_exists": lpIdentityExists,
Duplication
Line 178
Duplicate code found (appears 2 times)
required int? accountId,
Duplication
Line 232
Duplicate code found (appears 2 times)
required int? accountId,
Duplication
Line 179
Duplicate code found (appears 2 times)
required String? message,
Duplication
Line 233
Duplicate code found (appears 2 times)
required String? message,
Duplication
Line 188
Duplicate code found (appears 3 times)
"accountId": accountId,
Duplication
Line 241
Duplicate code found (appears 3 times)
"accountId": accountId,
Duplication
Line 299
Duplicate code found (appears 3 times)
"accountId": accountId,
Duplication
Line 189
Duplicate code found (appears 3 times)
"account_id": accountId,
Duplication
Line 242
Duplicate code found (appears 3 times)
"account_id": accountId,
Duplication
Line 742
Duplicate code found (appears 3 times)
"account_id": accountId,
Duplication
Line 190
Duplicate code found (appears 2 times)
"signature": message,
Duplication
Line 243
Duplicate code found (appears 2 times)
"signature": message,
Duplication
Line 268
Duplicate code found (appears 2 times)
final Map request = {
Duplication
Line 297
Duplicate code found (appears 2 times)
final Map request = {
Duplication
Line 285
Duplicate code found (appears 7 times)
complete: () => onComplete?.call(),
Duplication
Line 350
Duplicate code found (appears 7 times)
complete: () => onComplete?.call(),
Duplication
Line 391
Duplicate code found (appears 7 times)
complete: () => onComplete?.call(),
Duplication
Line 430
Duplicate code found (appears 7 times)
complete: () => onComplete?.call(),
Duplication
Line 467
Duplicate code found (appears 7 times)
complete: () => onComplete?.call(),
Duplication
Line 502
Duplicate code found (appears 7 times)
complete: () => onComplete?.call(),
Duplication
Line 537
Duplicate code found (appears 7 times)
complete: () => onComplete?.call(),
Duplication
Line 291
Duplicate code found (appears 2 times)
required String accountId,
Duplication
Line 571
Duplicate code found (appears 2 times)
required String accountId,
Duplication
Line 293
Duplicate code found (appears 2 times)
required VoidCallback onSuccess,
Duplication
Line 321
Duplicate code found (appears 2 times)
required VoidCallback onSuccess,
Duplication
Line 356
Duplicate code found (appears 3 times)
required String applicationNo,
Duplication
Line 473
Duplicate code found (appears 3 times)
required String applicationNo,
Duplication
Line 508
Duplicate code found (appears 3 times)
required String applicationNo,
Duplication
Line 357
Duplicate code found (appears 3 times)
required String toDate,
Duplication
Line 398
Duplicate code found (appears 3 times)
required String toDate,
Duplication
Line 598
Duplicate code found (appears 3 times)
required String toDate,
Duplication
Line 358
Duplicate code found (appears 3 times)
required String fromDate,
Duplication
Line 399
Duplicate code found (appears 3 times)
required String fromDate,
Duplication
Line 597
Duplicate code found (appears 3 times)
required String fromDate,
Duplication
Line 359
Duplicate code found (appears 3 times)
required void Function(
Duplication
Line 402
Duplicate code found (appears 3 times)
required void Function(
Duplication
Line 440
Duplicate code found (appears 3 times)
required void Function(
Duplication
Line 366
Duplicate code found (appears 3 times)
final sessionKey = await CryptoUtil.generateAesKey();
Duplication
Line 479
Duplicate code found (appears 3 times)
final sessionKey = await CryptoUtil.generateAesKey();
Duplication
Line 514
Duplicate code found (appears 3 times)
final sessionKey = await CryptoUtil.generateAesKey();
Duplication
Line 367
Duplicate code found (appears 3 times)
final String encryptedKey = await encrypt(sessionKey);
Duplication
Line 480
Duplicate code found (appears 3 times)
final String encryptedKey = await encrypt(sessionKey);
Duplication
Line 515
Duplicate code found (appears 3 times)
final String encryptedKey = await encrypt(sessionKey);
Duplication
Line 370
Duplicate code found (appears 3 times)
ApiUrl.getBankingTransactions,
Duplication
Line 483
Duplicate code found (appears 3 times)
ApiUrl.getBankingTransactions,
Duplication
Line 518
Duplicate code found (appears 3 times)
ApiUrl.getBankingTransactions,
Duplication
Line 372
Duplicate code found (appears 3 times)
"application_number": applicationNo,
Duplication
Line 485
Duplicate code found (appears 3 times)
"application_number": applicationNo,
Duplication
Line 520
Duplicate code found (appears 3 times)
"application_number": applicationNo,
Duplication
Line 373
Duplicate code found (appears 3 times)
"pagination": "$pagination",
Duplication
Line 486
Duplicate code found (appears 3 times)
"pagination": "$pagination",
Duplication
Line 521
Duplicate code found (appears 3 times)
"pagination": "$pagination",
Duplication
Line 374
Duplicate code found (appears 3 times)
"from_date": fromDate,
Duplication
Line 415
Duplicate code found (appears 3 times)
"from_date": fromDate,
Duplication
Line 606
Duplicate code found (appears 3 times)
"from_date": fromDate,
Duplication
Line 376
Duplicate code found (appears 3 times)
"session_key": encryptedKey,
Duplication
Line 487
Duplicate code found (appears 3 times)
"session_key": encryptedKey,
Duplication
Line 522
Duplicate code found (appears 3 times)
"session_key": encryptedKey,
Duplication
Line 380
Duplicate code found (appears 3 times)
final allList = (data["account_list"] as List?) ?? [];
Duplication
Line 491
Duplicate code found (appears 3 times)
final allList = (data["account_list"] as List?) ?? [];
Duplication
Line 526
Duplicate code found (appears 3 times)
final allList = (data["account_list"] as List?) ?? [];
Duplication
Line 409
Duplicate code found (appears 3 times)
final String encryptedAccount = await encrypt(accountNumber);
Duplication
Line 447
Duplicate code found (appears 3 times)
final String encryptedAccount = await encrypt(accountNumber);
Duplication
Line 604
Duplicate code found (appears 3 times)
final String encryptedAccount = await encrypt(accountNumber);
Duplication
Line 414
Duplicate code found (appears 3 times)
"account_number": encryptedAccount,
Duplication
Line 452
Duplicate code found (appears 3 times)
"account_number": encryptedAccount,
Duplication
Line 608
Duplicate code found (appears 3 times)
"account_number": encryptedAccount,
Duplication
Line 572
Duplicate code found (appears 2 times)
required String mobileNumber,
Duplication
Line 725
Duplicate code found (appears 2 times)
required String mobileNumber,
Duplication
Line 659
Duplicate code found (appears 2 times)
return await downloadTransactionPDF(
Duplication
Line 672
Duplicate code found (appears 2 times)
return await downloadTransactionPDF(
Duplication
Line 662
Duplicate code found (appears 2 times)
accountNumber: accountNumber,
Duplication
Line 675
Duplicate code found (appears 2 times)
accountNumber: accountNumber,
Duplication
Line 664
Duplicate code found (appears 2 times)
onSuccess: onSuccess,
Duplication
Line 677
Duplicate code found (appears 2 times)
onSuccess: onSuccess,
Duplication
Line 666
Duplicate code found (appears 2 times)
onComplete: onComplete,
Duplication
Line 679
Duplicate code found (appears 2 times)
onComplete: onComplete,
Unused Import
Line 1
Unused import: dart:convert
import "dart:convert";
Unused Import
Line 2
Unused import: dart:io
import "dart:io";

C:\Users\PM_User\Documents\upay-mobile\lib\repository\app_config_repo.dart

Metric Value
Total Lines 29
Code Lines 28
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\repository\auth_repo.dart

Metric Value
Total Lines 590
Code Lines 556
Comment Lines 2
Comment Density 0.4%
Total Issues 187

Issues Found:

Duplication
Line 18
Duplicate code found (appears 5 times)
BuildContext context, {
Duplication
Line 394
Duplicate code found (appears 5 times)
BuildContext context, {
Duplication
Line 416
Duplicate code found (appears 5 times)
BuildContext context, {
Duplication
Line 443
Duplicate code found (appears 5 times)
BuildContext context, {
Duplication
Line 468
Duplicate code found (appears 5 times)
BuildContext context, {
Duplication
Line 19
Duplicate code found (appears 2 times)
required String username,
Duplication
Line 365
Duplicate code found (appears 2 times)
required String username,
Duplication
Line 20
Duplicate code found (appears 11 times)
Function(Map data)? onSuccess,
Duplication
Line 45
Duplicate code found (appears 11 times)
Function(Map data)? onSuccess,
Duplication
Line 92
Duplicate code found (appears 11 times)
Function(Map data)? onSuccess,
Duplication
Line 125
Duplicate code found (appears 11 times)
Function(Map data)? onSuccess,
Duplication
Line 166
Duplicate code found (appears 11 times)
Function(Map data)? onSuccess,
Duplication
Line 194
Duplicate code found (appears 11 times)
Function(Map data)? onSuccess,
Duplication
Line 223
Duplicate code found (appears 11 times)
Function(Map data)? onSuccess,
Duplication
Line 250
Duplicate code found (appears 11 times)
Function(Map data)? onSuccess,
Duplication
Line 300
Duplicate code found (appears 11 times)
Function(Map data)? onSuccess,
Duplication
Line 331
Duplicate code found (appears 11 times)
Function(Map data)? onSuccess,
Duplication
Line 497
Duplicate code found (appears 11 times)
Function(Map data)? onSuccess,
Duplication
Line 21
Duplicate code found (appears 15 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 46
Duplicate code found (appears 15 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 93
Duplicate code found (appears 15 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 126
Duplicate code found (appears 15 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 167
Duplicate code found (appears 15 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 195
Duplicate code found (appears 15 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 224
Duplicate code found (appears 15 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 251
Duplicate code found (appears 15 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 301
Duplicate code found (appears 15 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 332
Duplicate code found (appears 15 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 368
Duplicate code found (appears 15 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 396
Duplicate code found (appears 15 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 420
Duplicate code found (appears 15 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 446
Duplicate code found (appears 15 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 498
Duplicate code found (appears 15 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 22
Duplicate code found (appears 18 times)
Function()? onComplete,
Duplication
Line 47
Duplicate code found (appears 18 times)
Function()? onComplete,
Duplication
Line 94
Duplicate code found (appears 18 times)
Function()? onComplete,
Duplication
Line 127
Duplicate code found (appears 18 times)
Function()? onComplete,
Duplication
Line 168
Duplicate code found (appears 18 times)
Function()? onComplete,
Duplication
Line 196
Duplicate code found (appears 18 times)
Function()? onComplete,
Duplication
Line 225
Duplicate code found (appears 18 times)
Function()? onComplete,
Duplication
Line 252
Duplicate code found (appears 18 times)
Function()? onComplete,
Duplication
Line 302
Duplicate code found (appears 18 times)
Function()? onComplete,
Duplication
Line 333
Duplicate code found (appears 18 times)
Function()? onComplete,
Duplication
Line 369
Duplicate code found (appears 18 times)
Function()? onComplete,
Duplication
Line 397
Duplicate code found (appears 18 times)
Function()? onComplete,
Duplication
Line 421
Duplicate code found (appears 18 times)
Function()? onComplete,
Duplication
Line 447
Duplicate code found (appears 18 times)
Function()? onComplete,
Duplication
Line 499
Duplicate code found (appears 18 times)
Function()? onComplete,
Duplication
Line 524
Duplicate code found (appears 18 times)
Function()? onComplete,
Duplication
Line 546
Duplicate code found (appears 18 times)
Function()? onComplete,
Duplication
Line 569
Duplicate code found (appears 18 times)
Function()? onComplete,
Duplication
Line 29
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 76
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 109
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 150
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 179
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 207
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 235
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 284
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 314
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 351
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 381
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 403
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 430
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 455
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 484
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 508
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 530
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 552
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 579
Duplicate code found (appears 19 times)
success: (title, message, data) {
Duplication
Line 30
Duplicate code found (appears 11 times)
onSuccess?.call(data);
Duplication
Line 77
Duplicate code found (appears 11 times)
onSuccess?.call(data);
Duplication
Line 110
Duplicate code found (appears 11 times)
onSuccess?.call(data);
Duplication
Line 151
Duplicate code found (appears 11 times)
onSuccess?.call(data);
Duplication
Line 180
Duplicate code found (appears 11 times)
onSuccess?.call(data);
Duplication
Line 208
Duplicate code found (appears 11 times)
onSuccess?.call(data);
Duplication
Line 236
Duplicate code found (appears 11 times)
onSuccess?.call(data);
Duplication
Line 285
Duplicate code found (appears 11 times)
onSuccess?.call(data);
Duplication
Line 315
Duplicate code found (appears 11 times)
onSuccess?.call(data);
Duplication
Line 352
Duplicate code found (appears 11 times)
onSuccess?.call(data);
Duplication
Line 509
Duplicate code found (appears 11 times)
onSuccess?.call(data);
Duplication
Line 32
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 79
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 112
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 153
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 182
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 210
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 238
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 287
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 317
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 354
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 384
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 406
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 433
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 458
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 487
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 511
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 533
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 555
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 582
Duplicate code found (appears 19 times)
failed: (title, message, data) {
Duplication
Line 33
Duplicate code found (appears 18 times)
onFail?.call(title, message, data);
Duplication
Line 80
Duplicate code found (appears 18 times)
onFail?.call(title, message, data);
Duplication
Line 113
Duplicate code found (appears 18 times)
onFail?.call(title, message, data);
Duplication
Line 154
Duplicate code found (appears 18 times)
onFail?.call(title, message, data);
Duplication
Line 183
Duplicate code found (appears 18 times)
onFail?.call(title, message, data);
Duplication
Line 211
Duplicate code found (appears 18 times)
onFail?.call(title, message, data);
Duplication
Line 239
Duplicate code found (appears 18 times)
onFail?.call(title, message, data);
Duplication
Line 288
Duplicate code found (appears 18 times)
onFail?.call(title, message, data);
Duplication
Line 318
Duplicate code found (appears 18 times)
onFail?.call(title, message, data);
Duplication
Line 355
Duplicate code found (appears 18 times)
onFail?.call(title, message, data);
Duplication
Line 385
Duplicate code found (appears 18 times)
onFail?.call(title, message, data);
Duplication
Line 407
Duplicate code found (appears 18 times)
onFail?.call(title, message, data);
Duplication
Line 434
Duplicate code found (appears 18 times)
onFail?.call(title, message, data);
Duplication
Line 459
Duplicate code found (appears 18 times)
onFail?.call(title, message, data);
Duplication
Line 512
Duplicate code found (appears 18 times)
onFail?.call(title, message, data);
Duplication
Line 534
Duplicate code found (appears 18 times)
onFail?.call(title, message, data);
Duplication
Line 556
Duplicate code found (appears 18 times)
onFail?.call(title, message, data);
Duplication
Line 583
Duplicate code found (appears 18 times)
onFail?.call(title, message, data);
Duplication
Line 42
Duplicate code found (appears 14 times)
required BuildContext context,
Duplication
Line 89
Duplicate code found (appears 14 times)
required BuildContext context,
Duplication
Line 122
Duplicate code found (appears 14 times)
required BuildContext context,
Duplication
Line 163
Duplicate code found (appears 14 times)
required BuildContext context,
Duplication
Line 192
Duplicate code found (appears 14 times)
required BuildContext context,
Duplication
Line 221
Duplicate code found (appears 14 times)
required BuildContext context,
Duplication
Line 248
Duplicate code found (appears 14 times)
required BuildContext context,
Duplication
Line 297
Duplicate code found (appears 14 times)
required BuildContext context,
Duplication
Line 327
Duplicate code found (appears 14 times)
required BuildContext context,
Duplication
Line 364
Duplicate code found (appears 14 times)
required BuildContext context,
Duplication
Line 495
Duplicate code found (appears 14 times)
required BuildContext context,
Duplication
Line 521
Duplicate code found (appears 14 times)
required BuildContext context,
Duplication
Line 543
Duplicate code found (appears 14 times)
required BuildContext context,
Duplication
Line 565
Duplicate code found (appears 14 times)
required BuildContext context,
Duplication
Line 43
Duplicate code found (appears 5 times)
required String mobile,
Duplication
Line 90
Duplicate code found (appears 5 times)
required String mobile,
Duplication
Line 164
Duplicate code found (appears 5 times)
required String mobile,
Duplication
Line 298
Duplicate code found (appears 5 times)
required String mobile,
Duplication
Line 496
Duplicate code found (appears 5 times)
required String mobile,
Duplication
Line 44
Duplicate code found (appears 2 times)
required String password,
Duplication
Line 366
Duplicate code found (appears 2 times)
required String password,
Duplication
Line 49
Duplicate code found (appears 2 times)
final String encryptedPassword = await encrypt(password);
Duplication
Line 371
Duplicate code found (appears 2 times)
final String encryptedPassword = await encrypt(password);
Duplication
Line 51
Duplicate code found (appears 2 times)
final hasBiometrics = await BiometricUtil.hasBiometrics();
Duplication
Line 129
Duplicate code found (appears 2 times)
final hasBiometrics = await BiometricUtil.hasBiometrics();
Duplication
Line 55
Duplicate code found (appears 4 times)
"mobile": "94${mobile.substring(mobile.length - 9, mobile.length)}",
Duplication
Line 101
Duplicate code found (appears 4 times)
"mobile": "94${mobile.substring(mobile.length - 9, mobile.length)}",
Duplication
Line 173
Duplicate code found (appears 4 times)
"mobile": "94${mobile.substring(mobile.length - 9, mobile.length)}",
Duplication
Line 504
Duplicate code found (appears 4 times)
"mobile": "94${mobile.substring(mobile.length - 9, mobile.length)}",
Duplication
Line 57
Duplicate code found (appears 4 times)
"password": encryptedPassword,
Duplication
Line 103
Duplicate code found (appears 4 times)
"password": encryptedPassword,
Duplication
Line 275
Duplicate code found (appears 4 times)
"password": encryptedPassword,
Duplication
Line 374
Duplicate code found (appears 4 times)
"password": encryptedPassword,
Duplication
Line 58
Duplicate code found (appears 2 times)
"fcmToken": getAppState(context).fcmToken,
Duplication
Line 104
Duplicate code found (appears 2 times)
"fcmToken": getAppState(context).fcmToken,
Duplication
Line 59
Duplicate code found (appears 2 times)
"language": getAppLang(context).getCurrentLang().langagueName,
Duplication
Line 105
Duplicate code found (appears 2 times)
"language": getAppLang(context).getCurrentLang().langagueName,
Duplication
Line 65
Duplicate code found (appears 2 times)
await BiometricAuth.getGeneratedPublicKey(Keys.keyLabel);
Duplication
Line 139
Duplicate code found (appears 2 times)
await BiometricAuth.getGeneratedPublicKey(Keys.keyLabel);
Duplication
Line 67
Duplicate code found (appears 3 times)
printLog(e.toString());
Duplication
Line 141
Duplicate code found (appears 3 times)
printLog(e.toString());
Duplication
Line 264
Duplicate code found (appears 3 times)
printLog(e.toString());
Duplication
Line 132
Duplicate code found (appears 2 times)
"username": username,
Duplication
Line 373
Duplicate code found (appears 2 times)
"username": username,
Duplication
Line 133
Duplicate code found (appears 2 times)
"otp": sha256.convert(utf8.encode(otp)).toString(),
Duplication
Line 336
Duplicate code found (appears 2 times)
"otp": sha256.convert(utf8.encode(otp)).toString(),
Duplication
Line 193
Duplicate code found (appears 3 times)
required RegisterData registerData,
Duplication
Line 222
Duplicate code found (appears 3 times)
required RegisterData registerData,
Duplication
Line 249
Duplicate code found (appears 3 times)
required RegisterData registerData,
Duplication
Line 201
Duplicate code found (appears 2 times)
"mobile": registerData.mobile,
Duplication
Line 230
Duplicate code found (appears 2 times)
"mobile": registerData.mobile,
Duplication
Line 202
Duplicate code found (appears 2 times)
"nic": registerData.nic?.trim().toUpperCase(),
Duplication
Line 273
Duplicate code found (appears 2 times)
"nic": registerData.nic?.trim().toUpperCase(),
Duplication
Line 276
Duplicate code found (appears 2 times)
"public_key": publicKey,
Duplication
Line 427
Duplicate code found (appears 2 times)
"public_key": publicKey,
Duplication
Line 280
Duplicate code found (appears 2 times)
"tnc_version": Env.tncVersion,
Duplication
Line 576
Duplicate code found (appears 2 times)
"tnc_version": Env.tncVersion,
Duplication
Line 335
Duplicate code found (appears 2 times)
final Map request = {
Duplication
Line 372
Duplicate code found (appears 2 times)
final Map request = {
Duplication
Line 522
Duplicate code found (appears 3 times)
Function(String title, String message, Map)? onSuccess,
Duplication
Line 544
Duplicate code found (appears 3 times)
Function(String title, String message, Map)? onSuccess,
Duplication
Line 567
Duplicate code found (appears 3 times)
Function(String title, String message, Map)? onSuccess,
Duplication
Line 523
Duplicate code found (appears 3 times)
Function(String title, String message, Map)? onFail,
Duplication
Line 545
Duplicate code found (appears 3 times)
Function(String title, String message, Map)? onFail,
Duplication
Line 568
Duplicate code found (appears 3 times)
Function(String title, String message, Map)? onFail,
Duplication
Line 531
Duplicate code found (appears 3 times)
onSuccess?.call(title ?? "", message ?? "", data);
Duplication
Line 553
Duplicate code found (appears 3 times)
onSuccess?.call(title ?? "", message ?? "", data);
Duplication
Line 580
Duplicate code found (appears 3 times)
onSuccess?.call(title ?? "", message ?? "", data);
Unused Import
Line 1
Unused import: dart:convert
import "dart:convert";

C:\Users\PM_User\Documents\upay-mobile\lib\repository\content_repo.dart

Metric Value
Total Lines 60
Code Lines 56
Comment Lines 2
Comment Density 3.6%
Total Issues 14

Issues Found:

Duplication
Line 9
Duplicate code found (appears 2 times)
required BuildContext context,
Duplication
Line 34
Duplicate code found (appears 2 times)
required BuildContext context,
Duplication
Line 10
Duplicate code found (appears 2 times)
Function(List banners)? onSuccess,
Duplication
Line 35
Duplicate code found (appears 2 times)
Function(List banners)? onSuccess,
Duplication
Line 11
Duplicate code found (appears 2 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 36
Duplicate code found (appears 2 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 12
Duplicate code found (appears 2 times)
Function()? onComplete,
Duplication
Line 37
Duplicate code found (appears 2 times)
Function()? onComplete,
Duplication
Line 20
Duplicate code found (appears 2 times)
success: (title, message, data) {
Duplication
Line 44
Duplicate code found (appears 2 times)
success: (title, message, data) {
Duplication
Line 24
Duplicate code found (appears 2 times)
failed: (title, message, data) {
Duplication
Line 51
Duplicate code found (appears 2 times)
failed: (title, message, data) {
Duplication
Line 25
Duplicate code found (appears 2 times)
onFail?.call(title, message, data);
Duplication
Line 52
Duplicate code found (appears 2 times)
onFail?.call(title, message, data);

C:\Users\PM_User\Documents\upay-mobile\lib\repository\credit_card_settlement_repo.dart

Metric Value
Total Lines 436
Code Lines 397
Comment Lines 4
Comment Density 1.0%
Total Issues 146

Issues Found:

Duplication
Line 18
Duplicate code found (appears 3 times)
required BuildContext context,
Duplication
Line 351
Duplicate code found (appears 3 times)
required BuildContext context,
Duplication
Line 380
Duplicate code found (appears 3 times)
required BuildContext context,
Duplication
Line 24
Duplicate code found (appears 4 times)
required Function(String title, String message, Map data)?
Duplication
Line 65
Duplicate code found (appears 4 times)
required Function(String title, String message, Map data)?
Duplication
Line 106
Duplicate code found (appears 4 times)
required Function(String title, String message, Map data)?
Duplication
Line 143
Duplicate code found (appears 4 times)
required Function(String title, String message, Map data)?
Duplication
Line 26
Duplicate code found (appears 5 times)
required Function()? onComplete,
Duplication
Line 67
Duplicate code found (appears 5 times)
required Function()? onComplete,
Duplication
Line 108
Duplicate code found (appears 5 times)
required Function()? onComplete,
Duplication
Line 145
Duplicate code found (appears 5 times)
required Function()? onComplete,
Duplication
Line 181
Duplicate code found (appears 5 times)
required Function()? onComplete,
Duplication
Line 33
Duplicate code found (appears 8 times)
final Map request = {
Duplication
Line 69
Duplicate code found (appears 8 times)
final Map request = {
Duplication
Line 110
Duplicate code found (appears 8 times)
final Map request = {
Duplication
Line 147
Duplicate code found (appears 8 times)
final Map request = {
Duplication
Line 183
Duplicate code found (appears 8 times)
final Map request = {
Duplication
Line 275
Duplicate code found (appears 8 times)
final Map request = {
Duplication
Line 317
Duplicate code found (appears 8 times)
final Map request = {
Duplication
Line 391
Duplicate code found (appears 8 times)
final Map request = {
Duplication
Line 45
Duplicate code found (appears 8 times)
success: (title, message, data) {
Duplication
Line 192
Duplicate code found (appears 8 times)
success: (title, message, data) {
Duplication
Line 254
Duplicate code found (appears 8 times)
success: (title, message, data) {
Duplication
Line 285
Duplicate code found (appears 8 times)
success: (title, message, data) {
Duplication
Line 329
Duplicate code found (appears 8 times)
success: (title, message, data) {
Duplication
Line 369
Duplicate code found (appears 8 times)
success: (title, message, data) {
Duplication
Line 400
Duplicate code found (appears 8 times)
success: (title, message, data) {
Duplication
Line 424
Duplicate code found (appears 8 times)
success: (title, message, data) {
Duplication
Line 50
Duplicate code found (appears 11 times)
failed: (title, message, data) {
Duplication
Line 90
Duplicate code found (appears 11 times)
failed: (title, message, data) {
Duplication
Line 132
Duplicate code found (appears 11 times)
failed: (title, message, data) {
Duplication
Line 162
Duplicate code found (appears 11 times)
failed: (title, message, data) {
Duplication
Line 199
Duplicate code found (appears 11 times)
failed: (title, message, data) {
Duplication
Line 257
Duplicate code found (appears 11 times)
failed: (title, message, data) {
Duplication
Line 296
Duplicate code found (appears 11 times)
failed: (title, message, data) {
Duplication
Line 341
Duplicate code found (appears 11 times)
failed: (title, message, data) {
Duplication
Line 372
Duplicate code found (appears 11 times)
failed: (title, message, data) {
Duplication
Line 403
Duplicate code found (appears 11 times)
failed: (title, message, data) {
Duplication
Line 428
Duplicate code found (appears 11 times)
failed: (title, message, data) {
Duplication
Line 51
Duplicate code found (appears 6 times)
onFail?.call(title, message, data);
Duplication
Line 91
Duplicate code found (appears 6 times)
onFail?.call(title, message, data);
Duplication
Line 133
Duplicate code found (appears 6 times)
onFail?.call(title, message, data);
Duplication
Line 163
Duplicate code found (appears 6 times)
onFail?.call(title, message, data);
Duplication
Line 258
Duplicate code found (appears 6 times)
onFail?.call(title, message, data);
Duplication
Line 429
Duplicate code found (appears 6 times)
onFail?.call(title, message, data);
Duplication
Line 53
Duplicate code found (appears 7 times)
complete: onComplete,
Duplication
Line 93
Duplicate code found (appears 7 times)
complete: onComplete,
Duplication
Line 135
Duplicate code found (appears 7 times)
complete: onComplete,
Duplication
Line 165
Duplicate code found (appears 7 times)
complete: onComplete,
Duplication
Line 229
Duplicate code found (appears 7 times)
complete: onComplete,
Duplication
Line 375
Duplicate code found (appears 7 times)
complete: onComplete,
Duplication
Line 406
Duplicate code found (appears 7 times)
complete: onComplete,
Duplication
Line 58
Duplicate code found (appears 8 times)
BuildContext context, {
Duplication
Line 98
Duplicate code found (appears 8 times)
BuildContext context, {
Duplication
Line 140
Duplicate code found (appears 8 times)
BuildContext context, {
Duplication
Line 170
Duplicate code found (appears 8 times)
BuildContext context, {
Duplication
Line 234
Duplicate code found (appears 8 times)
BuildContext context, {
Duplication
Line 267
Duplicate code found (appears 8 times)
BuildContext context, {
Duplication
Line 306
Duplicate code found (appears 8 times)
BuildContext context, {
Duplication
Line 411
Duplicate code found (appears 8 times)
BuildContext context, {
Duplication
Line 59
Duplicate code found (appears 2 times)
required int cardPayeeId,
Duplication
Line 99
Duplicate code found (appears 2 times)
required int cardPayeeId,
Duplication
Line 60
Duplicate code found (appears 2 times)
required int sourceId,
Duplication
Line 100
Duplicate code found (appears 2 times)
required int sourceId,
Duplication
Line 61
Duplicate code found (appears 2 times)
required String remarks,
Duplication
Line 101
Duplicate code found (appears 2 times)
required String remarks,
Duplication
Line 62
Duplicate code found (appears 2 times)
required double amount,
Duplication
Line 102
Duplicate code found (appears 2 times)
required double amount,
Duplication
Line 63
Duplicate code found (appears 2 times)
required bool isPoints,
Duplication
Line 103
Duplicate code found (appears 2 times)
required bool isPoints,
Duplication
Line 64
Duplicate code found (appears 2 times)
required void Function(InitCreditCardSettlementDetail) onSuccess,
Duplication
Line 105
Duplicate code found (appears 2 times)
required void Function(InitCreditCardSettlementDetail) onSuccess,
Duplication
Line 70
Duplicate code found (appears 2 times)
"card_payee_id": cardPayeeId,
Duplication
Line 111
Duplicate code found (appears 2 times)
"card_payee_id": cardPayeeId,
Duplication
Line 71
Duplicate code found (appears 2 times)
"source_id": sourceId,
Duplication
Line 112
Duplicate code found (appears 2 times)
"source_id": sourceId,
Duplication
Line 74
Duplicate code found (appears 2 times)
"use_points": isPoints,
Duplication
Line 115
Duplicate code found (appears 2 times)
"use_points": isPoints,
Duplication
Line 86
Duplicate code found (appears 2 times)
final initCreditCardSettlementDetail =
Duplication
Line 128
Duplicate code found (appears 2 times)
final initCreditCardSettlementDetail =
Duplication
Line 87
Duplicate code found (appears 2 times)
InitCreditCardSettlementDetail.fromJson(data);
Duplication
Line 129
Duplicate code found (appears 2 times)
InitCreditCardSettlementDetail.fromJson(data);
Duplication
Line 88
Duplicate code found (appears 2 times)
onSuccess(initCreditCardSettlementDetail);
Duplication
Line 130
Duplicate code found (appears 2 times)
onSuccess(initCreditCardSettlementDetail);
Duplication
Line 104
Duplicate code found (appears 2 times)
required int sessionId,
Duplication
Line 412
Duplicate code found (appears 2 times)
required int sessionId,
Duplication
Line 116
Duplicate code found (appears 4 times)
"session_id": sessionId,
Duplication
Line 148
Duplicate code found (appears 4 times)
"session_id": sessionId,
Duplication
Line 185
Duplicate code found (appears 4 times)
"session_id": sessionId,
Duplication
Line 418
Duplicate code found (appears 4 times)
"session_id": sessionId,
Duplication
Line 141
Duplicate code found (appears 2 times)
required String sessionId,
Duplication
Line 172
Duplicate code found (appears 2 times)
required String sessionId,
Duplication
Line 142
Duplicate code found (appears 4 times)
required VoidCallback onSuccess,
Duplication
Line 237
Duplicate code found (appears 4 times)
required VoidCallback onSuccess,
Duplication
Line 353
Duplicate code found (appears 4 times)
required VoidCallback onSuccess,
Duplication
Line 383
Duplicate code found (appears 4 times)
required VoidCallback onSuccess,
Duplication
Line 193
Duplicate code found (appears 2 times)
final CardSettlementSuccessDetail details =
Duplication
Line 202
Duplicate code found (appears 2 times)
final CardSettlementSuccessDetail details =
Duplication
Line 194
Duplicate code found (appears 2 times)
CardSettlementSuccessDetail.fromJson(
Duplication
Line 203
Duplicate code found (appears 2 times)
CardSettlementSuccessDetail.fromJson(
Duplication
Line 211
Duplicate code found (appears 2 times)
CardSettlementSuccessDetail(),
Duplication
Line 219
Duplicate code found (appears 2 times)
CardSettlementSuccessDetail(),
Duplication
Line 212
Duplicate code found (appears 2 times)
ScenarioCodes.userSpecificError,
Duplication
Line 220
Duplicate code found (appears 2 times)
ScenarioCodes.userSpecificError,
Duplication
Line 236
Duplicate code found (appears 2 times)
required String nickname,
Duplication
Line 382
Duplicate code found (appears 2 times)
required String nickname,
Duplication
Line 238
Duplicate code found (appears 3 times)
required void Function(
Duplication
Line 354
Duplicate code found (appears 3 times)
required void Function(
Duplication
Line 384
Duplicate code found (appears 3 times)
required void Function(
Duplication
Line 241
Duplicate code found (appears 3 times)
Map data,
Duplication
Line 357
Duplicate code found (appears 3 times)
Map data,
Duplication
Line 387
Duplicate code found (appears 3 times)
Map data,
Duplication
Line 247
Duplicate code found (appears 2 times)
"nickname": nickname,
Duplication
Line 393
Duplicate code found (appears 2 times)
"nickname": nickname,
Duplication
Line 268
Duplicate code found (appears 2 times)
required VoidCallback onCompleted,
Duplication
Line 308
Duplicate code found (appears 2 times)
required VoidCallback onCompleted,
Duplication
Line 270
Duplicate code found (appears 2 times)
void Function(String?, String?, Map?)? onFailed,
Duplication
Line 312
Duplicate code found (appears 2 times)
void Function(String?, String?, Map?)? onFailed,
Duplication
Line 272
Duplicate code found (appears 2 times)
final String sessionKey = await CryptoUtil.generateAesKey();
Duplication
Line 314
Duplicate code found (appears 2 times)
final String sessionKey = await CryptoUtil.generateAesKey();
Duplication
Line 273
Duplicate code found (appears 2 times)
final String encryptedSessionKey = await encrypt(sessionKey);
Duplication
Line 315
Duplicate code found (appears 2 times)
final String encryptedSessionKey = await encrypt(sessionKey);
Duplication
Line 276
Duplicate code found (appears 2 times)
"session_key": encryptedSessionKey,
Duplication
Line 318
Duplicate code found (appears 2 times)
"session_key": encryptedSessionKey,
Duplication
Line 279
Duplicate code found (appears 2 times)
final payeesList = [];
Duplication
Line 323
Duplicate code found (appears 2 times)
final payeesList = [];
Duplication
Line 286
Duplicate code found (appears 2 times)
final payeesListJson = data["saved_credit_cards"] as List;
Duplication
Line 331
Duplicate code found (appears 2 times)
final payeesListJson = data["saved_credit_cards"] as List;
Duplication
Line 287
Duplicate code found (appears 2 times)
final savedCreditCardSettlementPayees = payeesListJson.map(
Duplication
Line 332
Duplicate code found (appears 2 times)
final savedCreditCardSettlementPayees = payeesListJson.map(
Duplication
Line 288
Duplicate code found (appears 2 times)
(payeeJson) => CreditCardSettlementPayee.fromJson(payeeJson)
Duplication
Line 333
Duplicate code found (appears 2 times)
(payeeJson) => CreditCardSettlementPayee.fromJson(payeeJson)
Duplication
Line 289
Duplicate code found (appears 2 times)
..sessionKey = sessionKey,
Duplication
Line 334
Duplicate code found (appears 2 times)
..sessionKey = sessionKey,
Duplication
Line 292
Duplicate code found (appears 2 times)
payeesList.addAll(savedCreditCardSettlementPayees);
Duplication
Line 337
Duplicate code found (appears 2 times)
payeesList.addAll(savedCreditCardSettlementPayees);
Duplication
Line 297
Duplicate code found (appears 2 times)
onFailed?.call(title, message, data);
Duplication
Line 342
Duplicate code found (appears 2 times)
onFailed?.call(title, message, data);
Duplication
Line 299
Duplicate code found (appears 2 times)
complete: onCompleted,
Duplication
Line 344
Duplicate code found (appears 2 times)
complete: onCompleted,
Duplication
Line 359
Duplicate code found (appears 2 times)
required VoidCallback onComplete,
Duplication
Line 389
Duplicate code found (appears 2 times)
required VoidCallback onComplete,
Duplication
Line 373
Duplicate code found (appears 2 times)
onFailed.call(title, message, data);
Duplication
Line 404
Duplicate code found (appears 2 times)
onFailed.call(title, message, data);
Unused Import
Line 1
Unused import: dart:convert
import "dart:convert";
Potential Bug
Line 201
Null check without null-aware operator (?.)
if (data["data"] != null && data["data"]["code"] != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\repository\device_repo.dart

Metric Value
Total Lines 38
Code Lines 35
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\repository\fund_transfer_repo.dart

Metric Value
Total Lines 687
Code Lines 621
Comment Lines 30
Comment Density 4.8%
Total Issues 210

Issues Found:

Duplication
Line 19
Duplicate code found (appears 14 times)
BuildContext context, {
Duplication
Line 100
Duplicate code found (appears 14 times)
BuildContext context, {
Duplication
Line 139
Duplicate code found (appears 14 times)
BuildContext context, {
Duplication
Line 176
Duplicate code found (appears 14 times)
BuildContext context, {
Duplication
Line 229
Duplicate code found (appears 14 times)
BuildContext context, {
Duplication
Line 284
Duplicate code found (appears 14 times)
BuildContext context, {
Duplication
Line 311
Duplicate code found (appears 14 times)
BuildContext context, {
Duplication
Line 340
Duplicate code found (appears 14 times)
BuildContext context, {
Duplication
Line 368
Duplicate code found (appears 14 times)
BuildContext context, {
Duplication
Line 392
Duplicate code found (appears 14 times)
BuildContext context, {
Duplication
Line 416
Duplicate code found (appears 14 times)
BuildContext context, {
Duplication
Line 443
Duplicate code found (appears 14 times)
BuildContext context, {
Duplication
Line 470
Duplicate code found (appears 14 times)
BuildContext context, {
Duplication
Line 593
Duplicate code found (appears 14 times)
BuildContext context, {
Duplication
Line 26
Duplicate code found (appears 9 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 105
Duplicate code found (appears 9 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 144
Duplicate code found (appears 9 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 191
Duplicate code found (appears 9 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 245
Duplicate code found (appears 9 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 287
Duplicate code found (appears 9 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 315
Duplicate code found (appears 9 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 344
Duplicate code found (appears 9 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 596
Duplicate code found (appears 9 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 27
Duplicate code found (appears 11 times)
Function()? onComplete,
Duplication
Line 106
Duplicate code found (appears 11 times)
Function()? onComplete,
Duplication
Line 145
Duplicate code found (appears 11 times)
Function()? onComplete,
Duplication
Line 192
Duplicate code found (appears 11 times)
Function()? onComplete,
Duplication
Line 246
Duplicate code found (appears 11 times)
Function()? onComplete,
Duplication
Line 288
Duplicate code found (appears 11 times)
Function()? onComplete,
Duplication
Line 316
Duplicate code found (appears 11 times)
Function()? onComplete,
Duplication
Line 345
Duplicate code found (appears 11 times)
Function()? onComplete,
Duplication
Line 597
Duplicate code found (appears 11 times)
Function()? onComplete,
Duplication
Line 629
Duplicate code found (appears 11 times)
Function()? onComplete,
Duplication
Line 660
Duplicate code found (appears 11 times)
Function()? onComplete,
Duplication
Line 33
Duplicate code found (appears 18 times)
success: (title, message, data) {
Duplication
Line 118
Duplicate code found (appears 18 times)
success: (title, message, data) {
Duplication
Line 159
Duplicate code found (appears 18 times)
success: (title, message, data) {
Duplication
Line 206
Duplicate code found (appears 18 times)
success: (title, message, data) {
Duplication
Line 261
Duplicate code found (appears 18 times)
success: (title, message, data) {
Duplication
Line 297
Duplicate code found (appears 18 times)
success: (title, message, data) {
Duplication
Line 326
Duplicate code found (appears 18 times)
success: (title, message, data) {
Duplication
Line 355
Duplicate code found (appears 18 times)
success: (title, message, data) {
Duplication
Line 382
Duplicate code found (appears 18 times)
success: (title, message, data) {
Duplication
Line 406
Duplicate code found (appears 18 times)
success: (title, message, data) {
Duplication
Line 432
Duplicate code found (appears 18 times)
success: (title, message, data) {
Duplication
Line 459
Duplicate code found (appears 18 times)
success: (title, message, data) {
Duplication
Line 484
Duplicate code found (appears 18 times)
success: (title, message, data) {
Duplication
Line 515
Duplicate code found (appears 18 times)
success: (title, message, data) {
Duplication
Line 544
Duplicate code found (appears 18 times)
success: (title, message, data) {
Duplication
Line 578
Duplicate code found (appears 18 times)
success: (title, message, data) {
Duplication
Line 608
Duplicate code found (appears 18 times)
success: (title, message, data) {
Duplication
Line 638
Duplicate code found (appears 18 times)
success: (title, message, data) {
Duplication
Line 59
Duplicate code found (appears 17 times)
failed: (title, message, data) {
Duplication
Line 129
Duplicate code found (appears 17 times)
failed: (title, message, data) {
Duplication
Line 166
Duplicate code found (appears 17 times)
failed: (title, message, data) {
Duplication
Line 219
Duplicate code found (appears 17 times)
failed: (title, message, data) {
Duplication
Line 274
Duplicate code found (appears 17 times)
failed: (title, message, data) {
Duplication
Line 301
Duplicate code found (appears 17 times)
failed: (title, message, data) {
Duplication
Line 330
Duplicate code found (appears 17 times)
failed: (title, message, data) {
Duplication
Line 358
Duplicate code found (appears 17 times)
failed: (title, message, data) {
Duplication
Line 435
Duplicate code found (appears 17 times)
failed: (title, message, data) {
Duplication
Line 462
Duplicate code found (appears 17 times)
failed: (title, message, data) {
Duplication
Line 487
Duplicate code found (appears 17 times)
failed: (title, message, data) {
Duplication
Line 518
Duplicate code found (appears 17 times)
failed: (title, message, data) {
Duplication
Line 547
Duplicate code found (appears 17 times)
failed: (title, message, data) {
Duplication
Line 585
Duplicate code found (appears 17 times)
failed: (title, message, data) {
Duplication
Line 615
Duplicate code found (appears 17 times)
failed: (title, message, data) {
Duplication
Line 646
Duplicate code found (appears 17 times)
failed: (title, message, data) {
Duplication
Line 677
Duplicate code found (appears 17 times)
failed: (title, message, data) {
Duplication
Line 60
Duplicate code found (appears 9 times)
onFail?.call(title, message, data);
Duplication
Line 130
Duplicate code found (appears 9 times)
onFail?.call(title, message, data);
Duplication
Line 167
Duplicate code found (appears 9 times)
onFail?.call(title, message, data);
Duplication
Line 220
Duplicate code found (appears 9 times)
onFail?.call(title, message, data);
Duplication
Line 275
Duplicate code found (appears 9 times)
onFail?.call(title, message, data);
Duplication
Line 302
Duplicate code found (appears 9 times)
onFail?.call(title, message, data);
Duplication
Line 331
Duplicate code found (appears 9 times)
onFail?.call(title, message, data);
Duplication
Line 359
Duplicate code found (appears 9 times)
onFail?.call(title, message, data);
Duplication
Line 616
Duplicate code found (appears 9 times)
onFail?.call(title, message, data);
Duplication
Line 108
Duplicate code found (appears 5 times)
final String sessionKey = await CryptoUtil.generateAesKey();
Duplication
Line 147
Duplicate code found (appears 5 times)
final String sessionKey = await CryptoUtil.generateAesKey();
Duplication
Line 599
Duplicate code found (appears 5 times)
final String sessionKey = await CryptoUtil.generateAesKey();
Duplication
Line 631
Duplicate code found (appears 5 times)
final String sessionKey = await CryptoUtil.generateAesKey();
Duplication
Line 662
Duplicate code found (appears 5 times)
final String sessionKey = await CryptoUtil.generateAesKey();
Duplication
Line 109
Duplicate code found (appears 4 times)
final String encryptedSessionKey = await encrypt(sessionKey);
Duplication
Line 149
Duplicate code found (appears 4 times)
final String encryptedSessionKey = await encrypt(sessionKey);
Duplication
Line 600
Duplicate code found (appears 4 times)
final String encryptedSessionKey = await encrypt(sessionKey);
Duplication
Line 663
Duplicate code found (appears 4 times)
final String encryptedSessionKey = await encrypt(sessionKey);
Duplication
Line 113
Duplicate code found (appears 4 times)
"session_key": encryptedSessionKey,
Duplication
Line 156
Duplicate code found (appears 4 times)
"session_key": encryptedSessionKey,
Duplication
Line 605
Duplicate code found (appears 4 times)
"session_key": encryptedSessionKey,
Duplication
Line 669
Duplicate code found (appears 4 times)
"session_key": encryptedSessionKey,
Duplication
Line 123
Duplicate code found (appears 2 times)
.map((e) => SavedPayee.fromJson(e)..sessionKey = sessionKey)
Duplication
Line 642
Duplicate code found (appears 2 times)
.map((e) => SavedPayee.fromJson(e)..sessionKey = sessionKey)
Duplication
Line 140
Duplicate code found (appears 2 times)
required String accountNumber,
Duplication
Line 556
Duplicate code found (appears 2 times)
required String accountNumber,
Duplication
Line 143
Duplicate code found (appears 2 times)
Function(SavedPayee? payee, String sessionKey)? onSuccess,
Duplication
Line 595
Duplicate code found (appears 2 times)
Function(SavedPayee? payee, String sessionKey)? onSuccess,
Duplication
Line 153
Duplicate code found (appears 2 times)
"account_number": encryptedAccountNumber,
Duplication
Line 570
Duplicate code found (appears 2 times)
"account_number": encryptedAccountNumber,
Duplication
Line 160
Duplicate code found (appears 2 times)
final SavedPayee? savedPayee =
Duplication
Line 609
Duplicate code found (appears 2 times)
final SavedPayee? savedPayee =
Duplication
Line 161
Duplicate code found (appears 2 times)
data.containsKey("saved_payee") && (data["saved_payee"] != null)
Duplication
Line 610
Duplicate code found (appears 2 times)
data.containsKey("saved_payee") && (data["saved_payee"] != null)
Duplication
Line 162
Duplicate code found (appears 2 times)
? SavedPayee.fromJson(data["saved_payee"])
Duplication
Line 611
Duplicate code found (appears 2 times)
? SavedPayee.fromJson(data["saved_payee"])
Duplication
Line 164
Duplicate code found (appears 2 times)
onSuccess?.call(savedPayee, sessionKey);
Duplication
Line 613
Duplicate code found (appears 2 times)
onSuccess?.call(savedPayee, sessionKey);
Duplication
Line 177
Duplicate code found (appears 5 times)
required int payeeId,
Duplication
Line 230
Duplicate code found (appears 5 times)
required int payeeId,
Duplication
Line 341
Duplicate code found (appears 5 times)
required int payeeId,
Duplication
Line 496
Duplicate code found (appears 5 times)
required int payeeId,
Duplication
Line 527
Duplicate code found (appears 5 times)
required int payeeId,
Duplication
Line 178
Duplicate code found (appears 2 times)
required double amount,
Duplication
Line 232
Duplicate code found (appears 2 times)
required double amount,
Duplication
Line 179
Duplicate code found (appears 2 times)
required int sourceId,
Duplication
Line 233
Duplicate code found (appears 2 times)
required int sourceId,
Duplication
Line 181
Duplicate code found (appears 2 times)
bool selfAccount = false,
Duplication
Line 235
Duplicate code found (appears 2 times)
bool selfAccount = false,
Duplication
Line 182
Duplicate code found (appears 2 times)
bool usePoints = false,
Duplication
Line 236
Duplicate code found (appears 2 times)
bool usePoints = false,
Duplication
Line 198
Duplicate code found (appears 2 times)
"source_id": sourceId,
Duplication
Line 252
Duplicate code found (appears 2 times)
"source_id": sourceId,
Duplication
Line 199
Duplicate code found (appears 2 times)
"self_account": selfAccount,
Duplication
Line 253
Duplicate code found (appears 2 times)
"self_account": selfAccount,
Duplication
Line 200
Duplicate code found (appears 2 times)
"use_points": usePoints,
Duplication
Line 254
Duplicate code found (appears 2 times)
"use_points": usePoints,
Duplication
Line 209
Duplicate code found (appears 2 times)
(data["convenience_fee"] ?? 0) + (data["fees"] ?? 0);
Duplication
Line 264
Duplicate code found (appears 2 times)
(data["convenience_fee"] ?? 0) + (data["fees"] ?? 0);
Duplication
Line 216
Duplicate code found (appears 2 times)
data["payee_bank_icon"],
Duplication
Line 271
Duplicate code found (appears 2 times)
data["payee_bank_icon"],
Duplication
Line 231
Duplicate code found (appears 3 times)
required int sessionId,
Duplication
Line 285
Duplicate code found (appears 3 times)
required int sessionId,
Duplication
Line 312
Duplicate code found (appears 3 times)
required int sessionId,
Duplication
Line 255
Duplicate code found (appears 3 times)
"session_id": sessionId,
Duplication
Line 291
Duplicate code found (appears 3 times)
"session_id": sessionId,
Duplication
Line 319
Duplicate code found (appears 3 times)
"session_id": sessionId,
Duplication
Line 342
Duplicate code found (appears 5 times)
required String nickname,
Duplication
Line 418
Duplicate code found (appears 5 times)
required String nickname,
Duplication
Line 445
Duplicate code found (appears 5 times)
required String nickname,
Duplication
Line 497
Duplicate code found (appears 5 times)
required String nickname,
Duplication
Line 626
Duplicate code found (appears 5 times)
required String nickname,
Duplication
Line 349
Duplicate code found (appears 4 times)
"nickname": nickname,
Duplication
Line 425
Duplicate code found (appears 4 times)
"nickname": nickname,
Duplication
Line 452
Duplicate code found (appears 4 times)
"nickname": nickname,
Duplication
Line 635
Duplicate code found (appears 4 times)
"nickname": nickname,
Duplication
Line 369
Duplicate code found (appears 5 times)
required String accountId,
Duplication
Line 393
Duplicate code found (appears 5 times)
required String accountId,
Duplication
Line 417
Duplicate code found (appears 5 times)
required String accountId,
Duplication
Line 444
Duplicate code found (appears 5 times)
required String accountId,
Duplication
Line 471
Duplicate code found (appears 5 times)
required String accountId,
Duplication
Line 370
Duplicate code found (appears 4 times)
required void Function(String) onSuccess,
Duplication
Line 394
Duplicate code found (appears 4 times)
required void Function(String) onSuccess,
Duplication
Line 419
Duplicate code found (appears 4 times)
required void Function(String) onSuccess,
Duplication
Line 446
Duplicate code found (appears 4 times)
required void Function(String) onSuccess,
Duplication
Line 371
Duplicate code found (appears 4 times)
required void Function(String?, String?, Map) onFailed,
Duplication
Line 395
Duplicate code found (appears 4 times)
required void Function(String?, String?, Map) onFailed,
Duplication
Line 420
Duplicate code found (appears 4 times)
required void Function(String?, String?, Map) onFailed,
Duplication
Line 447
Duplicate code found (appears 4 times)
required void Function(String?, String?, Map) onFailed,
Duplication
Line 372
Duplicate code found (appears 5 times)
required VoidCallback onCompleted,
Duplication
Line 396
Duplicate code found (appears 5 times)
required VoidCallback onCompleted,
Duplication
Line 421
Duplicate code found (appears 5 times)
required VoidCallback onCompleted,
Duplication
Line 448
Duplicate code found (appears 5 times)
required VoidCallback onCompleted,
Duplication
Line 474
Duplicate code found (appears 5 times)
required VoidCallback onCompleted,
Duplication
Line 375
Duplicate code found (appears 6 times)
"account_id": accountId,
Duplication
Line 399
Duplicate code found (appears 6 times)
"account_id": accountId,
Duplication
Line 424
Duplicate code found (appears 6 times)
"account_id": accountId,
Duplication
Line 451
Duplicate code found (appears 6 times)
"account_id": accountId,
Duplication
Line 477
Duplicate code found (appears 6 times)
"account_id": accountId,
Duplication
Line 604
Duplicate code found (appears 6 times)
"account_id": accountId,
Duplication
Line 383
Duplicate code found (appears 2 times)
printLog("===== MESSAGE =====");
Duplication
Line 407
Duplicate code found (appears 2 times)
printLog("===== MESSAGE =====");
Duplication
Line 384
Duplicate code found (appears 4 times)
onSuccess.call(accountId);
Duplication
Line 408
Duplicate code found (appears 4 times)
onSuccess.call(accountId);
Duplication
Line 433
Duplicate code found (appears 4 times)
onSuccess.call(accountId);
Duplication
Line 460
Duplicate code found (appears 4 times)
onSuccess.call(accountId);
Duplication
Line 387
Duplicate code found (appears 5 times)
complete: onCompleted,
Duplication
Line 411
Duplicate code found (appears 5 times)
complete: onCompleted,
Duplication
Line 438
Duplicate code found (appears 5 times)
complete: onCompleted,
Duplication
Line 465
Duplicate code found (appears 5 times)
complete: onCompleted,
Duplication
Line 490
Duplicate code found (appears 5 times)
complete: onCompleted,
Duplication
Line 429
Duplicate code found (appears 2 times)
ApiUrl.updateBankAccount,
Duplication
Line 456
Duplicate code found (appears 2 times)
ApiUrl.updateBankAccount,
Duplication
Line 436
Duplicate code found (appears 6 times)
onFailed.call(title, message, data);
Duplication
Line 463
Duplicate code found (appears 6 times)
onFailed.call(title, message, data);
Duplication
Line 488
Duplicate code found (appears 6 times)
onFailed.call(title, message, data);
Duplication
Line 519
Duplicate code found (appears 6 times)
onFailed.call(title, message, data);
Duplication
Line 548
Duplicate code found (appears 6 times)
onFailed.call(title, message, data);
Duplication
Line 586
Duplicate code found (appears 6 times)
onFailed.call(title, message, data);
Duplication
Line 495
Duplicate code found (appears 5 times)
required BuildContext context,
Duplication
Line 526
Duplicate code found (appears 5 times)
required BuildContext context,
Duplication
Line 555
Duplicate code found (appears 5 times)
required BuildContext context,
Duplication
Line 625
Duplicate code found (appears 5 times)
required BuildContext context,
Duplication
Line 656
Duplicate code found (appears 5 times)
required BuildContext context,
Duplication
Line 498
Duplicate code found (appears 2 times)
required VoidCallback onSuccess,
Duplication
Line 528
Duplicate code found (appears 2 times)
required VoidCallback onSuccess,
Duplication
Line 499
Duplicate code found (appears 3 times)
required void Function(
Duplication
Line 529
Duplicate code found (appears 3 times)
required void Function(
Duplication
Line 558
Duplicate code found (appears 3 times)
required void Function(
Duplication
Line 502
Duplicate code found (appears 3 times)
Map data,
Duplication
Line 532
Duplicate code found (appears 3 times)
Map data,
Duplication
Line 561
Duplicate code found (appears 3 times)
Map data,
Duplication
Line 504
Duplicate code found (appears 3 times)
required VoidCallback onComplete,
Duplication
Line 534
Duplicate code found (appears 3 times)
required VoidCallback onComplete,
Duplication
Line 563
Duplicate code found (appears 3 times)
required VoidCallback onComplete,
Duplication
Line 521
Duplicate code found (appears 3 times)
complete: onComplete,
Duplication
Line 550
Duplicate code found (appears 3 times)
complete: onComplete,
Duplication
Line 588
Duplicate code found (appears 3 times)
complete: onComplete,
Unused Import
Line 1
Unused import: dart:convert
import "dart:convert";
Potential Bug
Line 161
Null check without null-aware operator (?.)
data.containsKey("saved_payee") && (data["saved_payee"] != null)
Potential Bug
Line 610
Null check without null-aware operator (?.)
data.containsKey("saved_payee") && (data["saved_payee"] != null)

C:\Users\PM_User\Documents\upay-mobile\lib\repository\gov_pay_repo.dart

Metric Value
Total Lines 146
Code Lines 140
Comment Lines 2
Comment Density 1.4%
Total Issues 19

Issues Found:

Duplication
Line 13
Duplicate code found (appears 2 times)
required BuildContext context,
Duplication
Line 46
Duplicate code found (appears 2 times)
required BuildContext context,
Duplication
Line 15
Duplicate code found (appears 2 times)
Function(String message)? onFail,
Duplication
Line 48
Duplicate code found (appears 2 times)
Function(String message)? onFail,
Duplication
Line 16
Duplicate code found (appears 3 times)
Function()? onComplete,
Duplication
Line 49
Duplicate code found (appears 3 times)
Function()? onComplete,
Duplication
Line 101
Duplicate code found (appears 3 times)
Function()? onComplete,
Duplication
Line 22
Duplicate code found (appears 3 times)
success: (title, message, data) {
Duplication
Line 55
Duplicate code found (appears 3 times)
success: (title, message, data) {
Duplication
Line 133
Duplicate code found (appears 3 times)
success: (title, message, data) {
Duplication
Line 27
Duplicate code found (appears 2 times)
(e) => DropDownValue(
Duplication
Line 60
Duplicate code found (appears 2 times)
(e) => DropDownValue(
Duplication
Line 36
Duplicate code found (appears 3 times)
failed: (title, message, data) {
Duplication
Line 74
Duplicate code found (appears 3 times)
failed: (title, message, data) {
Duplication
Line 138
Duplicate code found (appears 3 times)
failed: (title, message, data) {
Duplication
Line 37
Duplicate code found (appears 2 times)
onFail?.call(message);
Duplication
Line 75
Duplicate code found (appears 2 times)
onFail?.call(message);
Duplication
Line 56
Duplicate code found (appears 2 times)
printLog("GovPayRepo get offenses ---------------- ${data}");
Duplication
Line 134
Duplicate code found (appears 2 times)
printLog("GovPayRepo get offenses ---------------- ${data}");

C:\Users\PM_User\Documents\upay-mobile\lib\repository\language_repo.dart

Metric Value
Total Lines 29
Code Lines 28
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\repository\notification_repo.dart

Metric Value
Total Lines 59
Code Lines 55
Comment Lines 2
Comment Density 3.6%
Total Issues 10

Issues Found:

Duplication
Line 11
Duplicate code found (appears 2 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 39
Duplicate code found (appears 2 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 12
Duplicate code found (appears 2 times)
Function()? onComplete,
Duplication
Line 40
Duplicate code found (appears 2 times)
Function()? onComplete,
Duplication
Line 19
Duplicate code found (appears 2 times)
success: (title, message, data) {
Duplication
Line 48
Duplicate code found (appears 2 times)
success: (title, message, data) {
Duplication
Line 24
Duplicate code found (appears 2 times)
failed: (title, message, data) {
Duplication
Line 51
Duplicate code found (appears 2 times)
failed: (title, message, data) {
Duplication
Line 25
Duplicate code found (appears 2 times)
onFail?.call(title, message, data);
Duplication
Line 52
Duplicate code found (appears 2 times)
onFail?.call(title, message, data);

C:\Users\PM_User\Documents\upay-mobile\lib\repository\payment_repo.dart

Metric Value
Total Lines 660
Code Lines 610
Comment Lines 15
Comment Density 2.5%
Total Issues 187

Issues Found:

Duplication
Line 19
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 74
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 102
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 139
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 163
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 186
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 209
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 242
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 273
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 302
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 334
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 381
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 404
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 437
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 464
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 496
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 526
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 557
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 581
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 626
Duplicate code found (appears 20 times)
BuildContext context, {
Duplication
Line 26
Duplicate code found (appears 14 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 77
Duplicate code found (appears 14 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 105
Duplicate code found (appears 14 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 142
Duplicate code found (appears 14 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 165
Duplicate code found (appears 14 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 189
Duplicate code found (appears 14 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 216
Duplicate code found (appears 14 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 246
Duplicate code found (appears 14 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 469
Duplicate code found (appears 14 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 501
Duplicate code found (appears 14 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 530
Duplicate code found (appears 14 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 559
Duplicate code found (appears 14 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 588
Duplicate code found (appears 14 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 630
Duplicate code found (appears 14 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 27
Duplicate code found (appears 14 times)
Function()? onComplete,
Duplication
Line 78
Duplicate code found (appears 14 times)
Function()? onComplete,
Duplication
Line 106
Duplicate code found (appears 14 times)
Function()? onComplete,
Duplication
Line 143
Duplicate code found (appears 14 times)
Function()? onComplete,
Duplication
Line 166
Duplicate code found (appears 14 times)
Function()? onComplete,
Duplication
Line 190
Duplicate code found (appears 14 times)
Function()? onComplete,
Duplication
Line 217
Duplicate code found (appears 14 times)
Function()? onComplete,
Duplication
Line 247
Duplicate code found (appears 14 times)
Function()? onComplete,
Duplication
Line 470
Duplicate code found (appears 14 times)
Function()? onComplete,
Duplication
Line 502
Duplicate code found (appears 14 times)
Function()? onComplete,
Duplication
Line 531
Duplicate code found (appears 14 times)
Function()? onComplete,
Duplication
Line 560
Duplicate code found (appears 14 times)
Function()? onComplete,
Duplication
Line 589
Duplicate code found (appears 14 times)
Function()? onComplete,
Duplication
Line 631
Duplicate code found (appears 14 times)
Function()? onComplete,
Duplication
Line 33
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 87
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 112
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 149
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 172
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 196
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 229
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 259
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 282
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 313
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 366
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 391
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 422
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 449
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 483
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 513
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 540
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 566
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 596
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 641
Duplicate code found (appears 20 times)
success: (title, message, data) {
Duplication
Line 64
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 92
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 129
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 153
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 176
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 199
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 232
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 263
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 292
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 324
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 371
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 394
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 425
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 452
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 486
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 516
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 547
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 571
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 615
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 651
Duplicate code found (appears 20 times)
failed: (title, message, data) {
Duplication
Line 65
Duplicate code found (appears 14 times)
onFail?.call(title, message, data);
Duplication
Line 93
Duplicate code found (appears 14 times)
onFail?.call(title, message, data);
Duplication
Line 130
Duplicate code found (appears 14 times)
onFail?.call(title, message, data);
Duplication
Line 154
Duplicate code found (appears 14 times)
onFail?.call(title, message, data);
Duplication
Line 177
Duplicate code found (appears 14 times)
onFail?.call(title, message, data);
Duplication
Line 200
Duplicate code found (appears 14 times)
onFail?.call(title, message, data);
Duplication
Line 233
Duplicate code found (appears 14 times)
onFail?.call(title, message, data);
Duplication
Line 264
Duplicate code found (appears 14 times)
onFail?.call(title, message, data);
Duplication
Line 487
Duplicate code found (appears 14 times)
onFail?.call(title, message, data);
Duplication
Line 517
Duplicate code found (appears 14 times)
onFail?.call(title, message, data);
Duplication
Line 548
Duplicate code found (appears 14 times)
onFail?.call(title, message, data);
Duplication
Line 572
Duplicate code found (appears 14 times)
onFail?.call(title, message, data);
Duplication
Line 616
Duplicate code found (appears 14 times)
onFail?.call(title, message, data);
Duplication
Line 652
Duplicate code found (appears 14 times)
onFail?.call(title, message, data);
Duplication
Line 75
Duplicate code found (appears 2 times)
required int sessionId,
Duplication
Line 243
Duplicate code found (appears 2 times)
required int sessionId,
Duplication
Line 81
Duplicate code found (appears 2 times)
"session_id": sessionId,
Duplication
Line 250
Duplicate code found (appears 2 times)
"session_id": sessionId,
Duplication
Line 140
Duplicate code found (appears 7 times)
required int billerId,
Duplication
Line 187
Duplicate code found (appears 7 times)
required int billerId,
Duplication
Line 210
Duplicate code found (appears 7 times)
required int billerId,
Duplication
Line 465
Duplicate code found (appears 7 times)
required int billerId,
Duplication
Line 497
Duplicate code found (appears 7 times)
required int billerId,
Duplication
Line 527
Duplicate code found (appears 7 times)
required int billerId,
Duplication
Line 628
Duplicate code found (appears 7 times)
required int billerId,
Duplication
Line 141
Duplicate code found (appears 3 times)
Function(List)? onSuccess,
Duplication
Line 164
Duplicate code found (appears 3 times)
Function(List)? onSuccess,
Duplication
Line 188
Duplicate code found (appears 3 times)
Function(List)? onSuccess,
Duplication
Line 150
Duplicate code found (appears 2 times)
final fields = data["fields"] as List;
Duplication
Line 173
Duplicate code found (appears 2 times)
final fields = data["fields"] as List;
Duplication
Line 151
Duplicate code found (appears 2 times)
onSuccess?.call(fields.map((e) => BillerField.fromJson(e)).toList());
Duplication
Line 174
Duplicate code found (appears 2 times)
onSuccess?.call(fields.map((e) => BillerField.fromJson(e)).toList());
Duplication
Line 169
Duplicate code found (appears 2 times)
ApiUrl.getPaymentLimits,
Duplication
Line 563
Duplicate code found (appears 2 times)
ApiUrl.getPaymentLimits,
Duplication
Line 211
Duplicate code found (appears 3 times)
required double amount,
Duplication
Line 466
Duplicate code found (appears 3 times)
required double amount,
Duplication
Line 528
Duplicate code found (appears 3 times)
required double amount,
Duplication
Line 212
Duplicate code found (appears 4 times)
required List> fieldData,
Duplication
Line 335
Duplicate code found (appears 4 times)
required List> fieldData,
Duplication
Line 467
Duplicate code found (appears 4 times)
required List> fieldData,
Duplication
Line 499
Duplicate code found (appears 4 times)
required List> fieldData,
Duplication
Line 215
Duplicate code found (appears 3 times)
Function(Map data)? onSuccess,
Duplication
Line 245
Duplicate code found (appears 3 times)
Function(Map data)? onSuccess,
Duplication
Line 468
Duplicate code found (appears 3 times)
Function(Map data)? onSuccess,
Duplication
Line 222
Duplicate code found (appears 6 times)
"biller_id": billerId,
Duplication
Line 344
Duplicate code found (appears 6 times)
"biller_id": billerId,
Duplication
Line 475
Duplicate code found (appears 6 times)
"biller_id": billerId,
Duplication
Line 505
Duplicate code found (appears 6 times)
"biller_id": billerId,
Duplication
Line 536
Duplicate code found (appears 6 times)
"biller_id": billerId,
Duplication
Line 638
Duplicate code found (appears 6 times)
"biller_id": billerId,
Duplication
Line 223
Duplicate code found (appears 2 times)
"amount": amount.toString(),
Duplication
Line 476
Duplicate code found (appears 2 times)
"amount": amount.toString(),
Duplication
Line 224
Duplicate code found (appears 4 times)
"field_data": fieldData,
Duplication
Line 343
Duplicate code found (appears 4 times)
"field_data": fieldData,
Duplication
Line 477
Duplicate code found (appears 4 times)
"field_data": fieldData,
Duplication
Line 506
Duplicate code found (appears 4 times)
"field_data": fieldData,
Duplication
Line 230
Duplicate code found (appears 3 times)
onSuccess?.call(data);
Duplication
Line 261
Duplicate code found (appears 3 times)
onSuccess?.call(data);
Duplication
Line 484
Duplicate code found (appears 3 times)
onSuccess?.call(data);
Duplication
Line 275
Duplicate code found (appears 6 times)
void Function(String?, String?, Map data)? onFailed,
Duplication
Line 306
Duplicate code found (appears 6 times)
void Function(String?, String?, Map data)? onFailed,
Duplication
Line 339
Duplicate code found (appears 6 times)
void Function(String?, String?, Map data)? onFailed,
Duplication
Line 384
Duplicate code found (appears 6 times)
void Function(String?, String?, Map data)? onFailed,
Duplication
Line 409
Duplicate code found (appears 6 times)
void Function(String?, String?, Map data)? onFailed,
Duplication
Line 440
Duplicate code found (appears 6 times)
void Function(String?, String?, Map data)? onFailed,
Duplication
Line 276
Duplicate code found (appears 6 times)
VoidCallback? onCompleted,
Duplication
Line 307
Duplicate code found (appears 6 times)
VoidCallback? onCompleted,
Duplication
Line 340
Duplicate code found (appears 6 times)
VoidCallback? onCompleted,
Duplication
Line 385
Duplicate code found (appears 6 times)
VoidCallback? onCompleted,
Duplication
Line 410
Duplicate code found (appears 6 times)
VoidCallback? onCompleted,
Duplication
Line 441
Duplicate code found (appears 6 times)
VoidCallback? onCompleted,
Duplication
Line 283
Duplicate code found (appears 2 times)
final payeesListJson = data["saved_billers"] as List;
Duplication
Line 315
Duplicate code found (appears 2 times)
final payeesListJson = data["saved_billers"] as List;
Duplication
Line 284
Duplicate code found (appears 2 times)
final payees = payeesListJson
Duplication
Line 316
Duplicate code found (appears 2 times)
final payees = payeesListJson
Duplication
Line 286
Duplicate code found (appears 2 times)
(payee) => Biller.fromJson(payee as Map),
Duplication
Line 318
Duplicate code found (appears 2 times)
(payee) => Biller.fromJson(payee as Map),
Duplication
Line 293
Duplicate code found (appears 4 times)
onFailed?.call(title, message, data);
Duplication
Line 325
Duplicate code found (appears 4 times)
onFailed?.call(title, message, data);
Duplication
Line 372
Duplicate code found (appears 4 times)
onFailed?.call(title, message, data);
Duplication
Line 395
Duplicate code found (appears 4 times)
onFailed?.call(title, message, data);
Duplication
Line 336
Duplicate code found (appears 2 times)
required String billerId,
Duplication
Line 382
Duplicate code found (appears 2 times)
required String billerId,
Duplication
Line 337
Duplicate code found (appears 2 times)
required String nickname,
Duplication
Line 498
Duplicate code found (appears 2 times)
required String nickname,
Duplication
Line 345
Duplicate code found (appears 2 times)
"nickname": nickname,
Duplication
Line 507
Duplicate code found (appears 2 times)
"nickname": nickname,
Duplication
Line 383
Duplicate code found (appears 2 times)
required VoidCallback onSuccess,
Duplication
Line 408
Duplicate code found (appears 2 times)
required VoidCallback onSuccess,
Duplication
Line 406
Duplicate code found (appears 2 times)
required String accountNumber,
Duplication
Line 627
Duplicate code found (appears 2 times)
required String accountNumber,
Duplication
Line 432
Duplicate code found (appears 2 times)
complete: onCompleted,
Duplication
Line 459
Duplicate code found (appears 2 times)
complete: onCompleted,
Duplication
Line 591
Duplicate code found (appears 2 times)
final Map amountData = {};
Duplication
Line 633
Duplicate code found (appears 2 times)
final Map amountData = {};
Unused Import
Line 1
Unused import: dart:convert
import "dart:convert";
Potential Bug
Line 119
Null check without null-aware operator (?.)
(biller) => (((billerCategory != null) &&
Potential Bug
Line 124
Null check without null-aware operator (?.)
(billerCategory != null)
Potential Bug
Line 252
Null check without null-aware operator (?.)
if (otp != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\repository\qr_payment_repo.dart

Metric Value
Total Lines 162
Code Lines 153
Comment Lines 1
Comment Density 0.7%
Total Issues 48

Issues Found:

Duplication
Line 13
Duplicate code found (appears 3 times)
required String qrString,
Duplication
Line 37
Duplicate code found (appears 3 times)
required String qrString,
Duplication
Line 81
Duplicate code found (appears 3 times)
required String qrString,
Duplication
Line 15
Duplicate code found (appears 2 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 127
Duplicate code found (appears 2 times)
Function(String title, String message, Map data)? onFail,
Duplication
Line 16
Duplicate code found (appears 4 times)
Function()? onComplete,
Duplication
Line 49
Duplicate code found (appears 4 times)
Function()? onComplete,
Duplication
Line 88
Duplicate code found (appears 4 times)
Function()? onComplete,
Duplication
Line 128
Duplicate code found (appears 4 times)
Function()? onComplete,
Duplication
Line 24
Duplicate code found (appears 4 times)
success: (title, message, data) {
Duplication
Line 63
Duplicate code found (appears 4 times)
success: (title, message, data) {
Duplication
Line 103
Duplicate code found (appears 4 times)
success: (title, message, data) {
Duplication
Line 134
Duplicate code found (appears 4 times)
success: (title, message, data) {
Duplication
Line 29
Duplicate code found (appears 4 times)
failed: (title, message, data) {
Duplication
Line 67
Duplicate code found (appears 4 times)
failed: (title, message, data) {
Duplication
Line 107
Duplicate code found (appears 4 times)
failed: (title, message, data) {
Duplication
Line 154
Duplicate code found (appears 4 times)
failed: (title, message, data) {
Duplication
Line 30
Duplicate code found (appears 2 times)
onFail?.call(title, message, data);
Duplication
Line 155
Duplicate code found (appears 2 times)
onFail?.call(title, message, data);
Duplication
Line 36
Duplicate code found (appears 3 times)
BuildContext context, {
Duplication
Line 80
Duplicate code found (appears 3 times)
BuildContext context, {
Duplication
Line 120
Duplicate code found (appears 3 times)
BuildContext context, {
Duplication
Line 38
Duplicate code found (appears 2 times)
required double? amount,
Duplication
Line 82
Duplicate code found (appears 2 times)
required double? amount,
Duplication
Line 39
Duplicate code found (appears 2 times)
required String remarks,
Duplication
Line 83
Duplicate code found (appears 2 times)
required String remarks,
Duplication
Line 40
Duplicate code found (appears 2 times)
required String reference,
Duplication
Line 84
Duplicate code found (appears 2 times)
required String reference,
Duplication
Line 42
Duplicate code found (appears 2 times)
required void Function(QrPaymentDetail qrPaymentDetail) onSuccess,
Duplication
Line 85
Duplicate code found (appears 2 times)
required void Function(QrPaymentDetail qrPaymentDetail) onSuccess,
Duplication
Line 51
Duplicate code found (appears 2 times)
final Map request = {
Duplication
Line 90
Duplicate code found (appears 2 times)
final Map request = {
Duplication
Line 55
Duplicate code found (appears 2 times)
"reference": reference,
Duplication
Line 94
Duplicate code found (appears 2 times)
"reference": reference,
Duplication
Line 64
Duplicate code found (appears 2 times)
final qrDetail = QrPaymentDetail.fromJson(data);
Duplication
Line 104
Duplicate code found (appears 2 times)
final qrDetail = QrPaymentDetail.fromJson(data);
Duplication
Line 68
Duplicate code found (appears 2 times)
if (data["data"] != null && data["data"]["code"] != null) {
Duplication
Line 108
Duplicate code found (appears 2 times)
if (data["data"] != null && data["data"]["code"] != null) {
Duplication
Line 69
Duplicate code found (appears 2 times)
final qrDetail = QrPaymentDetail.fromJson(data["data"]);
Duplication
Line 109
Duplicate code found (appears 2 times)
final qrDetail = QrPaymentDetail.fromJson(data["data"]);
Duplication
Line 70
Duplicate code found (appears 2 times)
onFail?.call(title, message, qrDetail, data["data"]["code"]);
Duplication
Line 110
Duplicate code found (appears 2 times)
onFail?.call(title, message, qrDetail, data["data"]["code"]);
Duplication
Line 72
Duplicate code found (appears 2 times)
onFail?.call(title, message, null, ScenarioCodes.fail);
Duplication
Line 112
Duplicate code found (appears 2 times)
onFail?.call(title, message, null, ScenarioCodes.fail);
Duplication
Line 75
Duplicate code found (appears 2 times)
complete: () => onComplete?.call(),
Duplication
Line 115
Duplicate code found (appears 2 times)
complete: () => onComplete?.call(),
Potential Bug
Line 68
Null check without null-aware operator (?.)
if (data["data"] != null && data["data"]["code"] != null) {
Potential Bug
Line 108
Null check without null-aware operator (?.)
if (data["data"] != null && data["data"]["code"] != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\repository\support_repo.dart

Metric Value
Total Lines 28
Code Lines 27
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\repository\transaction_history_repo.dart

Metric Value
Total Lines 126
Code Lines 114
Comment Lines 3
Comment Density 2.6%
Total Issues 8

Issues Found:

Duplication
Line 97
Duplicate code found (appears 2 times)
return await getTransactionShareFile(
Duplication
Line 108
Duplicate code found (appears 2 times)
return await getTransactionShareFile(
Duplication
Line 99
Duplicate code found (appears 2 times)
transactionId: transactionId,
Duplication
Line 110
Duplicate code found (appears 2 times)
transactionId: transactionId,
Duplication
Line 100
Duplicate code found (appears 2 times)
onSuccess: onSuccess,
Duplication
Line 111
Duplicate code found (appears 2 times)
onSuccess: onSuccess,
Duplication
Line 102
Duplicate code found (appears 2 times)
onComplete: onComplete,
Duplication
Line 113
Duplicate code found (appears 2 times)
onComplete: onComplete,

C:\Users\PM_User\Documents\upay-mobile\lib\repository\uconnect_repo.dart

Metric Value
Total Lines 294
Code Lines 280
Comment Lines 3
Comment Density 1.1%
Total Issues 65

Issues Found:

Duplication
Line 15
Duplicate code found (appears 8 times)
required BuildContext context,
Duplication
Line 47
Duplicate code found (appears 8 times)
required BuildContext context,
Duplication
Line 82
Duplicate code found (appears 8 times)
required BuildContext context,
Duplication
Line 114
Duplicate code found (appears 8 times)
required BuildContext context,
Duplication
Line 138
Duplicate code found (appears 8 times)
required BuildContext context,
Duplication
Line 177
Duplicate code found (appears 8 times)
required BuildContext context,
Duplication
Line 215
Duplicate code found (appears 8 times)
required BuildContext context,
Duplication
Line 252
Duplicate code found (appears 8 times)
required BuildContext context,
Duplication
Line 16
Duplicate code found (appears 3 times)
Function(List uconnetList)? onSuccess,
Duplication
Line 48
Duplicate code found (appears 3 times)
Function(List uconnetList)? onSuccess,
Duplication
Line 83
Duplicate code found (appears 3 times)
Function(List uconnetList)? onSuccess,
Duplication
Line 17
Duplicate code found (appears 7 times)
Function(String message)? onFail,
Duplication
Line 49
Duplicate code found (appears 7 times)
Function(String message)? onFail,
Duplication
Line 84
Duplicate code found (appears 7 times)
Function(String message)? onFail,
Duplication
Line 140
Duplicate code found (appears 7 times)
Function(String message)? onFail,
Duplication
Line 183
Duplicate code found (appears 7 times)
Function(String message)? onFail,
Duplication
Line 219
Duplicate code found (appears 7 times)
Function(String message)? onFail,
Duplication
Line 257
Duplicate code found (appears 7 times)
Function(String message)? onFail,
Duplication
Line 18
Duplicate code found (appears 7 times)
Function()? onComplete,
Duplication
Line 50
Duplicate code found (appears 7 times)
Function()? onComplete,
Duplication
Line 85
Duplicate code found (appears 7 times)
Function()? onComplete,
Duplication
Line 141
Duplicate code found (appears 7 times)
Function()? onComplete,
Duplication
Line 184
Duplicate code found (appears 7 times)
Function()? onComplete,
Duplication
Line 220
Duplicate code found (appears 7 times)
Function()? onComplete,
Duplication
Line 258
Duplicate code found (appears 7 times)
Function()? onComplete,
Duplication
Line 24
Duplicate code found (appears 7 times)
success: (title, message, data) {
Duplication
Line 59
Duplicate code found (appears 7 times)
success: (title, message, data) {
Duplication
Line 91
Duplicate code found (appears 7 times)
success: (title, message, data) {
Duplication
Line 162
Duplicate code found (appears 7 times)
success: (title, message, data) {
Duplication
Line 196
Duplicate code found (appears 7 times)
success: (title, message, data) {
Duplication
Line 231
Duplicate code found (appears 7 times)
success: (title, message, data) {
Duplication
Line 281
Duplicate code found (appears 7 times)
success: (title, message, data) {
Duplication
Line 26
Duplicate code found (appears 2 times)
final inquiryData = inquiryList
Duplication
Line 61
Duplicate code found (appears 2 times)
final inquiryData = inquiryList
Duplication
Line 28
Duplicate code found (appears 3 times)
(e) => DropDownValue(
Duplication
Line 63
Duplicate code found (appears 3 times)
(e) => DropDownValue(
Duplication
Line 95
Duplicate code found (appears 3 times)
(e) => DropDownValue(
Duplication
Line 35
Duplicate code found (appears 2 times)
onSuccess?.call(inquiryData);
Duplication
Line 70
Duplicate code found (appears 2 times)
onSuccess?.call(inquiryData);
Duplication
Line 37
Duplicate code found (appears 7 times)
failed: (title, message, data) {
Duplication
Line 72
Duplicate code found (appears 7 times)
failed: (title, message, data) {
Duplication
Line 104
Duplicate code found (appears 7 times)
failed: (title, message, data) {
Duplication
Line 167
Duplicate code found (appears 7 times)
failed: (title, message, data) {
Duplication
Line 204
Duplicate code found (appears 7 times)
failed: (title, message, data) {
Duplication
Line 241
Duplicate code found (appears 7 times)
failed: (title, message, data) {
Duplication
Line 286
Duplicate code found (appears 7 times)
failed: (title, message, data) {
Duplication
Line 38
Duplicate code found (appears 7 times)
onFail?.call(message);
Duplication
Line 73
Duplicate code found (appears 7 times)
onFail?.call(message);
Duplication
Line 105
Duplicate code found (appears 7 times)
onFail?.call(message);
Duplication
Line 168
Duplicate code found (appears 7 times)
onFail?.call(message);
Duplication
Line 205
Duplicate code found (appears 7 times)
onFail?.call(message);
Duplication
Line 242
Duplicate code found (appears 7 times)
onFail?.call(message);
Duplication
Line 287
Duplicate code found (appears 7 times)
onFail?.call(message);
Duplication
Line 56
Duplicate code found (appears 2 times)
"inquiry_type_id": inquiryTypeId,
Duplication
Line 273
Duplicate code found (appears 2 times)
"inquiry_type_id": inquiryTypeId,
Duplication
Line 148
Duplicate code found (appears 2 times)
List? resourceIds,
Duplication
Line 266
Duplicate code found (appears 2 times)
List? resourceIds,
Duplication
Line 155
Duplicate code found (appears 2 times)
"category_id": categoryId,
Duplication
Line 275
Duplicate code found (appears 2 times)
"category_id": categoryId,
Duplication
Line 156
Duplicate code found (appears 2 times)
"branch_id": branchId,
Duplication
Line 276
Duplicate code found (appears 2 times)
"branch_id": branchId,
Duplication
Line 158
Duplicate code found (appears 2 times)
"resource_id": resourceIds,
Duplication
Line 278
Duplicate code found (appears 2 times)
"resource_id": resourceIds,
Duplication
Line 228
Duplicate code found (appears 2 times)
"ticket_id": conversationId,
Duplication
Line 271
Duplicate code found (appears 2 times)
"ticket_id": conversationId,

C:\Users\PM_User\Documents\upay-mobile\lib\repository\uearn_repo.dart

Metric Value
Total Lines 141
Code Lines 132
Comment Lines 0
Comment Density 0.0%
Total Issues 41

Issues Found:

Duplication
Line 10
Duplicate code found (appears 5 times)
required BuildContext context,
Duplication
Line 42
Duplicate code found (appears 5 times)
required BuildContext context,
Duplication
Line 65
Duplicate code found (appears 5 times)
required BuildContext context,
Duplication
Line 90
Duplicate code found (appears 5 times)
required BuildContext context,
Duplication
Line 118
Duplicate code found (appears 5 times)
required BuildContext context,
Duplication
Line 14
Duplicate code found (appears 5 times)
required Function(String title, String message, Map data)?
Duplication
Line 44
Duplicate code found (appears 5 times)
required Function(String title, String message, Map data)?
Duplication
Line 67
Duplicate code found (appears 5 times)
required Function(String title, String message, Map data)?
Duplication
Line 97
Duplicate code found (appears 5 times)
required Function(String title, String message, Map data)?
Duplication
Line 124
Duplicate code found (appears 5 times)
required Function(String title, String message, Map data)?
Duplication
Line 16
Duplicate code found (appears 5 times)
required Function()? onComplete,
Duplication
Line 46
Duplicate code found (appears 5 times)
required Function()? onComplete,
Duplication
Line 69
Duplicate code found (appears 5 times)
required Function()? onComplete,
Duplication
Line 99
Duplicate code found (appears 5 times)
required Function()? onComplete,
Duplication
Line 126
Duplicate code found (appears 5 times)
required Function()? onComplete,
Duplication
Line 29
Duplicate code found (appears 5 times)
success: (title, message, data) {
Duplication
Line 52
Duplicate code found (appears 5 times)
success: (title, message, data) {
Duplication
Line 75
Duplicate code found (appears 5 times)
success: (title, message, data) {
Duplication
Line 107
Duplicate code found (appears 5 times)
success: (title, message, data) {
Duplication
Line 132
Duplicate code found (appears 5 times)
success: (title, message, data) {
Duplication
Line 34
Duplicate code found (appears 5 times)
failed: (title, message, data) {
Duplication
Line 57
Duplicate code found (appears 5 times)
failed: (title, message, data) {
Duplication
Line 82
Duplicate code found (appears 5 times)
failed: (title, message, data) {
Duplication
Line 110
Duplicate code found (appears 5 times)
failed: (title, message, data) {
Duplication
Line 135
Duplicate code found (appears 5 times)
failed: (title, message, data) {
Duplication
Line 35
Duplicate code found (appears 5 times)
onFail?.call(title, message, data);
Duplication
Line 58
Duplicate code found (appears 5 times)
onFail?.call(title, message, data);
Duplication
Line 83
Duplicate code found (appears 5 times)
onFail?.call(title, message, data);
Duplication
Line 111
Duplicate code found (appears 5 times)
onFail?.call(title, message, data);
Duplication
Line 136
Duplicate code found (appears 5 times)
onFail?.call(title, message, data);
Duplication
Line 37
Duplicate code found (appears 5 times)
complete: onComplete,
Duplication
Line 60
Duplicate code found (appears 5 times)
complete: onComplete,
Duplication
Line 85
Duplicate code found (appears 5 times)
complete: onComplete,
Duplication
Line 113
Duplicate code found (appears 5 times)
complete: onComplete,
Duplication
Line 138
Duplicate code found (appears 5 times)
complete: onComplete,
Duplication
Line 92
Duplicate code found (appears 2 times)
required void Function(
Duplication
Line 119
Duplicate code found (appears 2 times)
required void Function(
Duplication
Line 95
Duplicate code found (appears 2 times)
Map data,
Duplication
Line 122
Duplicate code found (appears 2 times)
Map data,
Duplication
Line 108
Duplicate code found (appears 2 times)
onSuccess.call(title, message, data);
Duplication
Line 133
Duplicate code found (appears 2 times)
onSuccess.call(title, message, data);

C:\Users\PM_User\Documents\upay-mobile\lib\screens\change_language_screen.dart

Metric Value
Total Lines 132
Code Lines 127
Comment Lines 0
Comment Density 0.0%
Total Issues 11

Issues Found:

Duplication
Line 31
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 36
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 45
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 74
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 32
Duplicate code found (appears 3 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 37
Duplicate code found (appears 3 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 46
Duplicate code found (appears 3 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 39
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 41
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 69
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(2)),
Long Method
Line 26
Method is too long (100 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\home_screen.dart

Metric Value
Total Lines 554
Code Lines 485
Comment Lines 31
Comment Density 6.4%
Total Issues 47

Issues Found:

Duplication
Line 81
Duplicate code found (appears 3 times)
color: AppColors.transparent,
Duplication
Line 92
Duplicate code found (appears 3 times)
color: AppColors.transparent,
Duplication
Line 152
Duplicate code found (appears 3 times)
color: AppColors.transparent,
Duplication
Line 137
Duplicate code found (appears 2 times)
return GestureDetector(
Duplication
Line 225
Duplicate code found (appears 2 times)
return GestureDetector(
Duplication
Line 138
Duplicate code found (appears 3 times)
onTap: () => ExploreAppUserBlocker.blockIfExploreAppUser(
Duplication
Line 194
Duplicate code found (appears 3 times)
onTap: () => ExploreAppUserBlocker.blockIfExploreAppUser(
Duplication
Line 208
Duplicate code found (appears 3 times)
onTap: () => ExploreAppUserBlocker.blockIfExploreAppUser(
Duplication
Line 182
Duplicate code found (appears 4 times)
backgroundColor: AppColors.black,
Duplication
Line 228
Duplicate code found (appears 4 times)
backgroundColor: AppColors.black,
Duplication
Line 360
Duplicate code found (appears 4 times)
backgroundColor: AppColors.black,
Duplication
Line 413
Duplicate code found (appears 4 times)
backgroundColor: AppColors.black,
Duplication
Line 311
Duplicate code found (appears 3 times)
backgroundColor: AppColors.orange6,
Duplication
Line 385
Duplicate code found (appears 3 times)
backgroundColor: AppColors.orange6,
Duplication
Line 431
Duplicate code found (appears 3 times)
backgroundColor: AppColors.orange6,
Duplication
Line 314
Duplicate code found (appears 5 times)
AlertUtil.showComingSoonToast(context);
Duplication
Line 344
Duplicate code found (appears 5 times)
AlertUtil.showComingSoonToast(context);
Duplication
Line 362
Duplicate code found (appears 5 times)
AlertUtil.showComingSoonToast(context);
Duplication
Line 387
Duplicate code found (appears 5 times)
AlertUtil.showComingSoonToast(context);
Duplication
Line 416
Duplicate code found (appears 5 times)
AlertUtil.showComingSoonToast(context);
Duplication
Line 320
Duplicate code found (appears 5 times)
backgroundColor: AppColors.white,
Duplication
Line 340
Duplicate code found (appears 5 times)
backgroundColor: AppColors.white,
Duplication
Line 350
Duplicate code found (appears 5 times)
backgroundColor: AppColors.white,
Duplication
Line 402
Duplicate code found (appears 5 times)
backgroundColor: AppColors.white,
Duplication
Line 422
Duplicate code found (appears 5 times)
backgroundColor: AppColors.white,
Duplication
Line 321
Duplicate code found (appears 5 times)
textColor: AppColors.black,
Duplication
Line 341
Duplicate code found (appears 5 times)
textColor: AppColors.black,
Duplication
Line 351
Duplicate code found (appears 5 times)
textColor: AppColors.black,
Duplication
Line 403
Duplicate code found (appears 5 times)
textColor: AppColors.black,
Duplication
Line 423
Duplicate code found (appears 5 times)
textColor: AppColors.black,
Duplication
Line 342
Duplicate code found (appears 3 times)
badgeColor: AppColors.black,
Duplication
Line 352
Duplicate code found (appears 3 times)
badgeColor: AppColors.black,
Duplication
Line 404
Duplicate code found (appears 3 times)
badgeColor: AppColors.black,
Duplication
Line 368
Duplicate code found (appears 2 times)
backgroundColor: AppColors.primaryBlue,
Duplication
Line 393
Duplicate code found (appears 2 times)
backgroundColor: AppColors.primaryBlue,
Duplication
Line 374
Duplicate code found (appears 2 times)
pushScreen(context, ScreenRoutes.toBankingScreen);
Duplication
Line 471
Duplicate code found (appears 2 times)
pushScreen(context, ScreenRoutes.toBankingScreen);
Duplication
Line 394
Duplicate code found (appears 3 times)
textColor: AppColors.white,
Duplication
Line 414
Duplicate code found (appears 3 times)
textColor: AppColors.white,
Duplication
Line 432
Duplicate code found (appears 3 times)
textColor: AppColors.white,
Duplication
Line 463
Duplicate code found (appears 2 times)
_progressNotifier.value = false;
Duplication
Line 477
Duplicate code found (appears 2 times)
_progressNotifier.value = false;
Duplication
Line 489
Duplicate code found (appears 2 times)
final Color? textColor;
Duplication
Line 507
Duplicate code found (appears 2 times)
final Color? textColor;
Long Method
Line 62
Method is too long (72 lines)
Widget build(BuildContext context) {
Long Method
Line 512
Method is too long (36 lines)
void paint(Canvas canvas, Size size) {
Potential Bug
Line 464
Null check without null-aware operator (?.)
if (sdbProductItem.name != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\splash_screen.dart

Metric Value
Total Lines 365
Code Lines 320
Comment Lines 16
Comment Density 5.0%
Total Issues 41

Issues Found:

Duplication
Line 92
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 94
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 111
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 159
Duplicate code found (appears 2 times)
onSuccess: (data) async {
Duplication
Line 332
Duplicate code found (appears 2 times)
onSuccess: (data) async {
Duplication
Line 161
Duplicate code found (appears 2 times)
Constants.fingerprints.addAll(claims);
Duplication
Line 178
Duplicate code found (appears 2 times)
Constants.fingerprints.addAll(claims);
Duplication
Line 194
Duplicate code found (appears 3 times)
if (appUrl?.isEmpty ?? true) {
Duplication
Line 224
Duplicate code found (appears 3 times)
if (appUrl?.isEmpty ?? true) {
Duplication
Line 285
Duplicate code found (appears 3 times)
if (appUrl?.isEmpty ?? true) {
Duplication
Line 198
Duplicate code found (appears 2 times)
AlertUtil.showDialog(
Duplication
Line 258
Duplicate code found (appears 2 times)
AlertUtil.showDialog(
Duplication
Line 202
Duplicate code found (appears 2 times)
isDismissible: false,
Duplication
Line 263
Duplicate code found (appears 2 times)
isDismissible: false,
Duplication
Line 206
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 267
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 208
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 269
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 210
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(horizontal: Ui.getPadding(1)),
Duplication
Line 271
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(horizontal: Ui.getPadding(1)),
Duplication
Line 213
Duplicate code found (appears 2 times)
style: TextStyles.defaultMediumText,
Duplication
Line 274
Duplicate code found (appears 2 times)
style: TextStyles.defaultMediumText,
Duplication
Line 214
Duplicate code found (appears 2 times)
textAlign: TextAlign.center,
Duplication
Line 275
Duplicate code found (appears 2 times)
textAlign: TextAlign.center,
Duplication
Line 217
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(3)),
Duplication
Line 278
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(3)),
Duplication
Line 222
Duplicate code found (appears 2 times)
title: getLangStr(context, "update_now"),
Duplication
Line 283
Duplicate code found (appears 2 times)
title: getLangStr(context, "update_now"),
Duplication
Line 229
Duplicate code found (appears 2 times)
launchMode: Platform.isIOS
Duplication
Line 290
Duplicate code found (appears 2 times)
launchMode: Platform.isIOS
Duplication
Line 230
Duplicate code found (appears 2 times)
? LaunchMode.externalApplication
Duplication
Line 291
Duplicate code found (appears 2 times)
? LaunchMode.externalApplication
Duplication
Line 231
Duplicate code found (appears 2 times)
: LaunchMode.externalNonBrowserApplication,
Duplication
Line 292
Duplicate code found (appears 2 times)
: LaunchMode.externalNonBrowserApplication,
Duplication
Line 323
Duplicate code found (appears 2 times)
moveToScreen(context, ScreenRoutes.toSelectLanguageScreen);
Duplication
Line 363
Duplicate code found (appears 2 times)
moveToScreen(context, ScreenRoutes.toSelectLanguageScreen);
Duplication
Line 350
Duplicate code found (appears 2 times)
_moveToLanguageScreen();
Duplication
Line 355
Duplicate code found (appears 2 times)
_moveToLanguageScreen();
Unused Import
Line 1
Unused import: dart:io
import "dart:io";
Long Method
Line 60
Method is too long (22 lines)
Widget build(BuildContext context) {
Potential Bug
Line 338
Null check without null-aware operator (?.)
if (data["language"] != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\tnc_screen.dart

Metric Value
Total Lines 293
Code Lines 259
Comment Lines 12
Comment Density 4.6%
Total Issues 11

Issues Found:

Duplication
Line 72
Duplicate code found (appears 2 times)
_controller.loadHtmlString(html);
Duplication
Line 185
Duplicate code found (appears 2 times)
_controller.loadHtmlString(html);
Duplication
Line 90
Duplicate code found (appears 2 times)
loadingNotifier.value = false;
Duplication
Line 101
Duplicate code found (appears 2 times)
loadingNotifier.value = false;
Duplication
Line 173
Duplicate code found (appears 2 times)
(widget.isSignUp ?? false)
Duplication
Line 243
Duplicate code found (appears 2 times)
(widget.isSignUp ?? false)
Duplication
Line 216
Duplicate code found (appears 2 times)
AlertUtil.showToast(context, "please_read_agreement");
Duplication
Line 249
Duplicate code found (appears 2 times)
AlertUtil.showToast(context, "please_read_agreement");
Unused Import
Line 1
Unused import: dart:io
import "dart:io";
Long Method
Line 64
Method is too long (76 lines)
void initState() {
Long Method
Line 164
Method is too long (94 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\auth\auth_layout.dart

Metric Value
Total Lines 655
Code Lines 618
Comment Lines 3
Comment Density 0.5%
Total Issues 70

Issues Found:

Duplication
Line 49
Duplicate code found (appears 2 times)
Widget build(BuildContext context) {
Duplication
Line 551
Duplicate code found (appears 2 times)
Widget build(BuildContext context) {
Duplication
Line 66
Duplicate code found (appears 2 times)
height: ScreenUtil.height,
Duplication
Line 78
Duplicate code found (appears 2 times)
height: ScreenUtil.height,
Duplication
Line 67
Duplicate code found (appears 2 times)
decoration: const BoxDecoration(
Duplication
Line 79
Duplicate code found (appears 2 times)
decoration: const BoxDecoration(
Duplication
Line 68
Duplicate code found (appears 2 times)
image: DecorationImage(
Duplication
Line 80
Duplicate code found (appears 2 times)
image: DecorationImage(
Duplication
Line 71
Duplicate code found (appears 2 times)
), // Replace with your actual image path
Duplication
Line 83
Duplicate code found (appears 2 times)
), // Replace with your actual image path
Duplication
Line 72
Duplicate code found (appears 2 times)
fit: BoxFit.fitWidth,
Duplication
Line 84
Duplicate code found (appears 2 times)
fit: BoxFit.fitWidth,
Duplication
Line 93
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(
Duplication
Line 169
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(
Duplication
Line 94
Duplicate code found (appears 2 times)
vertical: Ui.getPadding(1),
Duplication
Line 170
Duplicate code found (appears 2 times)
vertical: Ui.getPadding(1),
Duplication
Line 98
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 231
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 389
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 123
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1.5)),
Duplication
Line 164
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1.5)),
Duplication
Line 204
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1.5)),
Duplication
Line 127
Duplicate code found (appears 8 times)
authType == AuthType.login
Duplication
Line 137
Duplicate code found (appears 8 times)
authType == AuthType.login
Duplication
Line 209
Duplicate code found (appears 8 times)
authType == AuthType.login
Duplication
Line 217
Duplicate code found (appears 8 times)
authType == AuthType.login
Duplication
Line 232
Duplicate code found (appears 8 times)
authType == AuthType.login
Duplication
Line 283
Duplicate code found (appears 8 times)
authType == AuthType.login
Duplication
Line 302
Duplicate code found (appears 8 times)
authType == AuthType.login
Duplication
Line 339
Duplicate code found (appears 8 times)
authType == AuthType.login
Duplication
Line 129
Duplicate code found (appears 2 times)
: (authType == AuthType.registerImages
Duplication
Line 211
Duplicate code found (appears 2 times)
: (authType == AuthType.registerImages
Duplication
Line 135
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 348
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 140
Duplicate code found (appears 2 times)
style: TextStyles.signUpText,
Duplication
Line 226
Duplicate code found (appears 2 times)
style: TextStyles.signUpText,
Duplication
Line 145
Duplicate code found (appears 3 times)
color: AppColors.transparent,
Duplication
Line 260
Duplicate code found (appears 3 times)
color: AppColors.transparent,
Duplication
Line 357
Duplicate code found (appears 3 times)
color: AppColors.transparent,
Duplication
Line 159
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 431
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 166
Duplicate code found (appears 2 times)
visible: authType == AuthType.registerImages,
Duplication
Line 276
Duplicate code found (appears 2 times)
visible: authType == AuthType.registerImages,
Duplication
Line 181
Duplicate code found (appears 2 times)
recognizer: TapGestureRecognizer()
Duplication
Line 309
Duplicate code found (appears 2 times)
recognizer: TapGestureRecognizer()
Duplication
Line 216
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(0.5)),
Duplication
Line 293
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(0.5)),
Duplication
Line 244
Duplicate code found (appears 2 times)
AvailableBiometricType
Duplication
Line 247
Duplicate code found (appears 2 times)
AvailableBiometricType
Duplication
Line 252
Duplicate code found (appears 2 times)
child: GestureDetector(
Duplication
Line 350
Duplicate code found (appears 2 times)
child: GestureDetector(
Duplication
Line 290
Duplicate code found (appears 3 times)
textAlign: TextAlign.center,
Duplication
Line 295
Duplicate code found (appears 3 times)
textAlign: TextAlign.center,
Duplication
Line 375
Duplicate code found (appears 3 times)
textAlign: TextAlign.center,
Duplication
Line 343
Duplicate code found (appears 2 times)
style: TextStyles.signUpTextBtn,
Duplication
Line 360
Duplicate code found (appears 2 times)
style: TextStyles.signUpTextBtn,
Duplication
Line 413
Duplicate code found (appears 4 times)
const ColumnSpacer(2),
Duplication
Line 423
Duplicate code found (appears 4 times)
const ColumnSpacer(2),
Duplication
Line 456
Duplicate code found (appears 4 times)
const ColumnSpacer(2),
Duplication
Line 485
Duplicate code found (appears 4 times)
const ColumnSpacer(2),
Duplication
Line 466
Duplicate code found (appears 2 times)
color: AppColors.red7,
Duplication
Line 474
Duplicate code found (appears 2 times)
color: AppColors.red7,
Duplication
Line 588
Duplicate code found (appears 2 times)
a: const math.Point(0, 0),
Duplication
Line 606
Duplicate code found (appears 2 times)
a: const math.Point(0, 0),
Unused Import
Line 23
Unused import: dart:math
import "dart:math" as math;
Long Method
Line 49
Method is too long (360 lines)
Widget build(BuildContext context) {
Long Method
Line 578
Method is too long (37 lines)
void paint(Canvas canvas, Size size) {
Potential Bug
Line 236
Null check without null-aware operator (?.)
if (snap.hasData && (snap.data != null)) {
Potential Bug
Line 242
Null check without null-aware operator (?.)
(snap.data != null &&
Potential Bug
Line 319
Null check without null-aware operator (?.)
value != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\auth\base_layout.dart

Metric Value
Total Lines 162
Code Lines 157
Comment Lines 2
Comment Density 1.3%
Total Issues 13

Issues Found:

Duplication
Line 50
Duplicate code found (appears 2 times)
height: ScreenUtil.height,
Duplication
Line 60
Duplicate code found (appears 2 times)
height: ScreenUtil.height,
Duplication
Line 51
Duplicate code found (appears 2 times)
decoration: const BoxDecoration(
Duplication
Line 61
Duplicate code found (appears 2 times)
decoration: const BoxDecoration(
Duplication
Line 52
Duplicate code found (appears 2 times)
image: DecorationImage(
Duplication
Line 62
Duplicate code found (appears 2 times)
image: DecorationImage(
Duplication
Line 54
Duplicate code found (appears 2 times)
fit: BoxFit.fitWidth,
Duplication
Line 64
Duplicate code found (appears 2 times)
fit: BoxFit.fitWidth,
Duplication
Line 70
Duplicate code found (appears 2 times)
backgroundColor: AppColors.transparent,
Duplication
Line 72
Duplicate code found (appears 2 times)
backgroundColor: AppColors.transparent,
Duplication
Line 118
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 140
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(1)),
Long Method
Line 33
Method is too long (128 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\auth\sign_in_screen.dart

Metric Value
Total Lines 943
Code Lines 842
Comment Lines 49
Comment Density 5.8%
Total Issues 204

Issues Found:

Duplication
Line 64
Duplicate code found (appears 2 times)
String? userMobile = widget.mobile;
Duplication
Line 542
Duplicate code found (appears 2 times)
String? userMobile = widget.mobile;
Duplication
Line 65
Duplicate code found (appears 2 times)
if (userMobile?.isNotEmpty ?? false) {
Duplication
Line 543
Duplicate code found (appears 2 times)
if (userMobile?.isNotEmpty ?? false) {
Duplication
Line 66
Duplicate code found (appears 2 times)
userMobile = userMobile!.substring(
Duplication
Line 544
Duplicate code found (appears 2 times)
userMobile = userMobile!.substring(
Duplication
Line 67
Duplicate code found (appears 2 times)
userMobile.length - (userMobile.length >= 9 ? 9 : 0),
Duplication
Line 545
Duplicate code found (appears 2 times)
userMobile.length - (userMobile.length >= 9 ? 9 : 0),
Duplication
Line 120
Duplicate code found (appears 2 times)
absorbing: widget.mobile?.isNotEmpty ?? false,
Duplication
Line 598
Duplicate code found (appears 2 times)
absorbing: widget.mobile?.isNotEmpty ?? false,
Duplication
Line 121
Duplicate code found (appears 2 times)
child: MobileInputField(
Duplication
Line 599
Duplicate code found (appears 2 times)
child: MobileInputField(
Duplication
Line 127
Duplicate code found (appears 2 times)
_onFieldsUpdate(text);
Duplication
Line 135
Duplicate code found (appears 2 times)
_onFieldsUpdate(text);
Duplication
Line 162
Duplicate code found (appears 7 times)
_progressNotifier.value = true;
Duplication
Line 353
Duplicate code found (appears 7 times)
_progressNotifier.value = true;
Duplication
Line 493
Duplicate code found (appears 7 times)
_progressNotifier.value = true;
Duplication
Line 564
Duplicate code found (appears 7 times)
_progressNotifier.value = true;
Duplication
Line 658
Duplicate code found (appears 7 times)
_progressNotifier.value = true;
Duplication
Line 796
Duplicate code found (appears 7 times)
_progressNotifier.value = true;
Duplication
Line 829
Duplicate code found (appears 7 times)
_progressNotifier.value = true;
Duplication
Line 166
Duplicate code found (appears 3 times)
mobile: _usernameController.text,
Duplication
Line 800
Duplicate code found (appears 3 times)
mobile: _usernameController.text,
Duplication
Line 833
Duplicate code found (appears 3 times)
mobile: _usernameController.text,
Duplication
Line 168
Duplicate code found (appears 3 times)
onSuccess: (Map data) {
Duplication
Line 802
Duplicate code found (appears 3 times)
onSuccess: (Map data) {
Duplication
Line 834
Duplicate code found (appears 3 times)
onSuccess: (Map data) {
Duplication
Line 169
Duplicate code found (appears 2 times)
final scenarioCode = data["code"];
Duplication
Line 803
Duplicate code found (appears 2 times)
final scenarioCode = data["code"];
Duplication
Line 170
Duplicate code found (appears 2 times)
hasTnc = ScenarioCodes.newDevice == scenarioCode
Duplication
Line 804
Duplicate code found (appears 2 times)
hasTnc = ScenarioCodes.newDevice == scenarioCode
Duplication
Line 172
Duplicate code found (appears 2 times)
: data["user"]["has_tnc"];
Duplication
Line 806
Duplicate code found (appears 2 times)
: data["user"]["has_tnc"];
Duplication
Line 173
Duplicate code found (appears 2 times)
printLog("scenarioCode -> $scenarioCode");
Duplication
Line 807
Duplicate code found (appears 2 times)
printLog("scenarioCode -> $scenarioCode");
Duplication
Line 174
Duplicate code found (appears 2 times)
if (scenarioCode == ScenarioCodes.newDevice) {
Duplication
Line 808
Duplicate code found (appears 2 times)
if (scenarioCode == ScenarioCodes.newDevice) {
Duplication
Line 176
Duplicate code found (appears 2 times)
_promptOtpDialog(data["username"]);
Duplication
Line 809
Duplicate code found (appears 2 times)
_promptOtpDialog(data["username"]);
Duplication
Line 178
Duplicate code found (appears 3 times)
_handleLoginSuccess(data);
Duplication
Line 366
Duplicate code found (appears 3 times)
_handleLoginSuccess(data);
Duplication
Line 811
Duplicate code found (appears 3 times)
_handleLoginSuccess(data);
Duplication
Line 181
Duplicate code found (appears 3 times)
onFail: (String title, String message, Map data) {
Duplication
Line 814
Duplicate code found (appears 3 times)
onFail: (String title, String message, Map data) {
Duplication
Line 838
Duplicate code found (appears 3 times)
onFail: (String title, String message, Map data) {
Duplication
Line 187
Duplicate code found (appears 3 times)
_handleLoginError(data, title, message);
Duplication
Line 371
Duplicate code found (appears 3 times)
_handleLoginError(data, title, message);
Duplication
Line 815
Duplicate code found (appears 3 times)
_handleLoginError(data, title, message);
Duplication
Line 190
Duplicate code found (appears 8 times)
_progressNotifier.value = false;
Duplication
Line 386
Duplicate code found (appears 8 times)
_progressNotifier.value = false;
Duplication
Line 509
Duplicate code found (appears 8 times)
_progressNotifier.value = false;
Duplication
Line 579
Duplicate code found (appears 8 times)
_progressNotifier.value = false;
Duplication
Line 673
Duplicate code found (appears 8 times)
_progressNotifier.value = false;
Duplication
Line 818
Duplicate code found (appears 8 times)
_progressNotifier.value = false;
Duplication
Line 836
Duplicate code found (appears 8 times)
_progressNotifier.value = false;
Duplication
Line 842
Duplicate code found (appears 8 times)
_progressNotifier.value = false;
Duplication
Line 201
Duplicate code found (appears 7 times)
_otpController.clear();
Duplication
Line 361
Duplicate code found (appears 7 times)
_otpController.clear();
Duplication
Line 369
Duplicate code found (appears 7 times)
_otpController.clear();
Duplication
Line 387
Duplicate code found (appears 7 times)
_otpController.clear();
Duplication
Line 399
Duplicate code found (appears 7 times)
_otpController.clear();
Duplication
Line 510
Duplicate code found (appears 7 times)
_otpController.clear();
Duplication
Line 828
Duplicate code found (appears 7 times)
_otpController.clear();
Duplication
Line 202
Duplicate code found (appears 2 times)
if (_otpController is OTPTextEditController) {
Duplication
Line 400
Duplicate code found (appears 2 times)
if (_otpController is OTPTextEditController) {
Duplication
Line 203
Duplicate code found (appears 2 times)
(_otpController as OTPTextEditController).startListenUserConsent(
Duplication
Line 401
Duplicate code found (appears 2 times)
(_otpController as OTPTextEditController).startListenUserConsent(
Duplication
Line 205
Duplicate code found (appears 2 times)
return RegExp(r"(\d{6})").stringMatch(code ?? "") ?? "";
Duplication
Line 403
Duplicate code found (appears 2 times)
return RegExp(r"(\d{6})").stringMatch(code ?? "") ?? "";
Duplication
Line 208
Duplicate code found (appears 2 times)
senderNumber: Env.otpSenderName,
Duplication
Line 406
Duplicate code found (appears 2 times)
senderNumber: Env.otpSenderName,
Duplication
Line 211
Duplicate code found (appears 5 times)
AlertUtil.showDialog(
Duplication
Line 409
Duplicate code found (appears 5 times)
AlertUtil.showDialog(
Duplication
Line 553
Duplicate code found (appears 5 times)
AlertUtil.showDialog(
Duplication
Line 641
Duplicate code found (appears 5 times)
AlertUtil.showDialog(
Duplication
Line 892
Duplicate code found (appears 5 times)
AlertUtil.showDialog(
Duplication
Line 214
Duplicate code found (appears 2 times)
buttonText: "submit_otp",
Duplication
Line 412
Duplicate code found (appears 2 times)
buttonText: "submit_otp",
Duplication
Line 215
Duplicate code found (appears 2 times)
formKey: _otpFormKey,
Duplication
Line 413
Duplicate code found (appears 2 times)
formKey: _otpFormKey,
Duplication
Line 216
Duplicate code found (appears 3 times)
isDismissible: false,
Duplication
Line 414
Duplicate code found (appears 3 times)
isDismissible: false,
Duplication
Line 896
Duplicate code found (appears 3 times)
isDismissible: false,
Duplication
Line 226
Duplicate code found (appears 2 times)
controller: _otpController,
Duplication
Line 421
Duplicate code found (appears 2 times)
controller: _otpController,
Duplication
Line 233
Duplicate code found (appears 6 times)
textAlign: TextAlign.center,
Duplication
Line 265
Duplicate code found (appears 6 times)
textAlign: TextAlign.center,
Duplication
Line 294
Duplicate code found (appears 6 times)
textAlign: TextAlign.center,
Duplication
Line 432
Duplicate code found (appears 6 times)
textAlign: TextAlign.center,
Duplication
Line 461
Duplicate code found (appears 6 times)
textAlign: TextAlign.center,
Duplication
Line 908
Duplicate code found (appears 6 times)
textAlign: TextAlign.center,
Duplication
Line 235
Duplicate code found (appears 3 times)
style: TextStyles.signUpQuestionText,
Duplication
Line 296
Duplicate code found (appears 3 times)
style: TextStyles.signUpQuestionText,
Duplication
Line 463
Duplicate code found (appears 3 times)
style: TextStyles.signUpQuestionText,
Duplication
Line 236
Duplicate code found (appears 5 times)
children: [
Duplication
Line 268
Duplicate code found (appears 5 times)
children: [
Duplication
Line 297
Duplicate code found (appears 5 times)
children: [
Duplication
Line 435
Duplicate code found (appears 5 times)
children: [
Duplication
Line 464
Duplicate code found (appears 5 times)
children: [
Duplication
Line 245
Duplicate code found (appears 3 times)
style: TextStyles.signUpTextBtn.copyWith(
Duplication
Line 334
Duplicate code found (appears 3 times)
style: TextStyles.signUpTextBtn.copyWith(
Duplication
Line 475
Duplicate code found (appears 3 times)
style: TextStyles.signUpTextBtn.copyWith(
Duplication
Line 246
Duplicate code found (appears 5 times)
color: AppColors.red2,
Duplication
Line 284
Duplicate code found (appears 5 times)
color: AppColors.red2,
Duplication
Line 335
Duplicate code found (appears 5 times)
color: AppColors.red2,
Duplication
Line 451
Duplicate code found (appears 5 times)
color: AppColors.red2,
Duplication
Line 476
Duplicate code found (appears 5 times)
color: AppColors.red2,
Duplication
Line 247
Duplicate code found (appears 3 times)
decoration: TextDecoration.none,
Duplication
Line 336
Duplicate code found (appears 3 times)
decoration: TextDecoration.none,
Duplication
Line 477
Duplicate code found (appears 3 times)
decoration: TextDecoration.none,
Duplication
Line 260
Duplicate code found (appears 2 times)
child: ValueListenableBuilder(
Duplication
Line 427
Duplicate code found (appears 2 times)
child: ValueListenableBuilder(
Duplication
Line 261
Duplicate code found (appears 2 times)
valueListenable: _otpSecondsNotifier,
Duplication
Line 428
Duplicate code found (appears 2 times)
valueListenable: _otpSecondsNotifier,
Duplication
Line 262
Duplicate code found (appears 2 times)
builder: (context, seconds, child) {
Duplication
Line 429
Duplicate code found (appears 2 times)
builder: (context, seconds, child) {
Duplication
Line 267
Duplicate code found (appears 2 times)
style: TextStyles.signUpQuestionText.copyWith(),
Duplication
Line 434
Duplicate code found (appears 2 times)
style: TextStyles.signUpQuestionText.copyWith(),
Duplication
Line 270
Duplicate code found (appears 4 times)
text: getLangStr(context, "did_not_receive_otp"),
Duplication
Line 325
Duplicate code found (appears 4 times)
text: getLangStr(context, "did_not_receive_otp"),
Duplication
Line 437
Duplicate code found (appears 4 times)
text: getLangStr(context, "did_not_receive_otp"),
Duplication
Line 466
Duplicate code found (appears 4 times)
text: getLangStr(context, "did_not_receive_otp"),
Duplication
Line 272
Duplicate code found (appears 9 times)
const TextSpan(text: " "),
Duplication
Line 276
Duplicate code found (appears 9 times)
const TextSpan(text: " "),
Duplication
Line 321
Duplicate code found (appears 9 times)
const TextSpan(text: " "),
Duplication
Line 322
Duplicate code found (appears 9 times)
const TextSpan(text: " "),
Duplication
Line 323
Duplicate code found (appears 9 times)
const TextSpan(text: " "),
Duplication
Line 327
Duplicate code found (appears 9 times)
const TextSpan(text: " "),
Duplication
Line 439
Duplicate code found (appears 9 times)
const TextSpan(text: " "),
Duplication
Line 443
Duplicate code found (appears 9 times)
const TextSpan(text: " "),
Duplication
Line 468
Duplicate code found (appears 9 times)
const TextSpan(text: " "),
Duplication
Line 274
Duplicate code found (appears 2 times)
text: getLangStr(context, "retry_in"),
Duplication
Line 441
Duplicate code found (appears 2 times)
text: getLangStr(context, "retry_in"),
Duplication
Line 278
Duplicate code found (appears 2 times)
text: getLangReplaced(
Duplication
Line 445
Duplicate code found (appears 2 times)
text: getLangReplaced(
Duplication
Line 281
Duplicate code found (appears 2 times)
[seconds.toString()],
Duplication
Line 448
Duplicate code found (appears 2 times)
[seconds.toString()],
Duplication
Line 283
Duplicate code found (appears 2 times)
style: TextStyles.signUpTitle.copyWith(
Duplication
Line 450
Duplicate code found (appears 2 times)
style: TextStyles.signUpTitle.copyWith(
Duplication
Line 285
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w500,
Duplication
Line 452
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w500,
Duplication
Line 286
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.2),
Duplication
Line 453
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.2),
Duplication
Line 329
Duplicate code found (appears 2 times)
recognizer: TapGestureRecognizer()
Duplication
Line 470
Duplicate code found (appears 2 times)
recognizer: TapGestureRecognizer()
Duplication
Line 333
Duplicate code found (appears 2 times)
text: getLangStr(context, "get_another"),
Duplication
Line 474
Duplicate code found (appears 2 times)
text: getLangStr(context, "get_another"),
Duplication
Line 351
Duplicate code found (appears 2 times)
if (_otpFormKey.currentState?.validate() ?? false) {
Duplication
Line 491
Duplicate code found (appears 2 times)
if (_otpFormKey.currentState?.validate() ?? false) {
Duplication
Line 357
Duplicate code found (appears 2 times)
otp: _otpController.text,
Duplication
Line 497
Duplicate code found (appears 2 times)
otp: _otpController.text,
Duplication
Line 363
Duplicate code found (appears 3 times)
_showSetupPasswordSheet(username);
Duplication
Line 502
Duplicate code found (appears 3 times)
_showSetupPasswordSheet(username);
Duplication
Line 669
Duplicate code found (appears 3 times)
_showSetupPasswordSheet(username);
Duplication
Line 391
Duplicate code found (appears 2 times)
printLog("Invalid otp given");
Duplication
Line 514
Duplicate code found (appears 2 times)
printLog("Invalid otp given");
Duplication
Line 551
Duplicate code found (appears 2 times)
final formKey = GlobalKey();
Duplication
Line 631
Duplicate code found (appears 2 times)
final formKey = GlobalKey();
Duplication
Line 557
Duplicate code found (appears 2 times)
titleStyle: TextStyles.defaultText,
Duplication
Line 645
Duplicate code found (appears 2 times)
titleStyle: TextStyles.defaultText,
Duplication
Line 562
Duplicate code found (appears 2 times)
if (formKey.currentState?.validate() ?? false) {
Duplication
Line 650
Duplicate code found (appears 2 times)
if (formKey.currentState?.validate() ?? false) {
Duplication
Line 575
Duplicate code found (appears 2 times)
onFail: (title, message, _) {
Duplication
Line 668
Duplicate code found (appears 2 times)
onFail: (title, message, _) {
Duplication
Line 576
Duplicate code found (appears 4 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 670
Duplicate code found (appears 4 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 839
Duplicate code found (appears 4 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 936
Duplicate code found (appears 4 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 587
Duplicate code found (appears 2 times)
onTap: () => grabFocus(context),
Duplication
Line 680
Duplicate code found (appears 2 times)
onTap: () => grabFocus(context),
Duplication
Line 589
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 682
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 590
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 683
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 900
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 594
Duplicate code found (appears 4 times)
style: TextStyles.defaultText,
Duplication
Line 608
Duplicate code found (appears 4 times)
style: TextStyles.defaultText,
Duplication
Line 687
Duplicate code found (appears 4 times)
style: TextStyles.defaultText,
Duplication
Line 697
Duplicate code found (appears 4 times)
style: TextStyles.defaultText,
Duplication
Line 596
Duplicate code found (appears 6 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 605
Duplicate code found (appears 6 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 610
Duplicate code found (appears 6 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 689
Duplicate code found (appears 6 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 699
Duplicate code found (appears 6 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 902
Duplicate code found (appears 6 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 602
Duplicate code found (appears 2 times)
errorStyle: const TextStyle(),
Duplication
Line 621
Duplicate code found (appears 2 times)
errorStyle: const TextStyle(),
Duplication
Line 692
Duplicate code found (appears 2 times)
errorStyle: TextStyle(fontSize: Ui.getFontSize(1)),
Duplication
Line 703
Duplicate code found (appears 2 times)
errorStyle: TextStyle(fontSize: Ui.getFontSize(1)),
Duplication
Line 747
Duplicate code found (appears 2 times)
"failed_sign_in_with_biometrics",
Duplication
Line 789
Duplicate code found (appears 2 times)
"failed_sign_in_with_biometrics",
Duplication
Line 748
Duplicate code found (appears 2 times)
[hasFaceId ? "face_id" : "fingerprint"],
Duplication
Line 790
Duplicate code found (appears 2 times)
[hasFaceId ? "face_id" : "fingerprint"],
Duplication
Line 769
Duplicate code found (appears 2 times)
getAppState(context).loginMethod = 0;
Duplication
Line 774
Duplicate code found (appears 2 times)
getAppState(context).loginMethod = 0;
Duplication
Line 874
Duplicate code found (appears 2 times)
getAppState(context).token = data["data"]?["token"];
Duplication
Line 889
Duplicate code found (appears 2 times)
getAppState(context).token = data["data"]?["token"];
Unused Import
Line 1
Unused import: dart:async
import "dart:async";
Unused Import
Line 2
Unused import: dart:io
import "dart:io";
Long Method
Line 62
Method is too long (26 lines)
void initState() {
Long Method
Line 99
Method is too long (49 lines)
Widget build(BuildContext context) {
Potential Bug
Line 373
Null check without null-aware operator (?.)
if ((data["data"] != null ||
Potential Bug
Line 374
Null check without null-aware operator (?.)
data["data"]["remaining_attempts"] != null) &&
Potential Bug
Line 617
Null check without null-aware operator (?.)
return (errorText != null)

C:\Users\PM_User\Documents\upay-mobile\lib\screens\auth\sign_up_images_screen.dart

Metric Value
Total Lines 332
Code Lines 295
Comment Lines 15
Comment Density 5.1%
Total Issues 62

Issues Found:

Duplication
Line 127
Duplicate code found (appears 2 times)
SizedBox(width: Ui.getPadding(3)),
Duplication
Line 133
Duplicate code found (appears 2 times)
SizedBox(width: Ui.getPadding(3)),
Duplication
Line 150
Duplicate code found (appears 3 times)
if (!isIncompleteRegistration) {
Duplication
Line 208
Duplicate code found (appears 3 times)
if (!isIncompleteRegistration) {
Duplication
Line 254
Duplicate code found (appears 3 times)
if (!isIncompleteRegistration) {
Duplication
Line 156
Duplicate code found (appears 3 times)
CameraController? controller;
Duplication
Line 212
Duplicate code found (appears 3 times)
CameraController? controller;
Duplication
Line 258
Duplicate code found (appears 3 times)
CameraController? controller;
Duplication
Line 157
Duplicate code found (appears 3 times)
CameraSnap().startCamera(
Duplication
Line 213
Duplicate code found (appears 3 times)
CameraSnap().startCamera(
Duplication
Line 259
Duplicate code found (appears 3 times)
CameraSnap().startCamera(
Duplication
Line 159
Duplicate code found (appears 3 times)
controller: controller,
Duplication
Line 215
Duplicate code found (appears 3 times)
controller: controller,
Duplication
Line 261
Duplicate code found (appears 3 times)
controller: controller,
Duplication
Line 163
Duplicate code found (appears 3 times)
onCameraInitialize: () {
Duplication
Line 218
Duplicate code found (appears 3 times)
onCameraInitialize: () {
Duplication
Line 263
Duplicate code found (appears 3 times)
onCameraInitialize: () {
Duplication
Line 164
Duplicate code found (appears 3 times)
_progressNotifier.value = false;
Duplication
Line 219
Duplicate code found (appears 3 times)
_progressNotifier.value = false;
Duplication
Line 264
Duplicate code found (appears 3 times)
_progressNotifier.value = false;
Duplication
Line 166
Duplicate code found (appears 3 times)
onCaptured: (snap) async {
Duplication
Line 221
Duplicate code found (appears 3 times)
onCaptured: (snap) async {
Duplication
Line 267
Duplicate code found (appears 3 times)
onCaptured: (snap) async {
Duplication
Line 168
Duplicate code found (appears 3 times)
printLog("Captured image is null");
Duplication
Line 223
Duplicate code found (appears 3 times)
printLog("Captured image is null");
Duplication
Line 269
Duplicate code found (appears 3 times)
printLog("Captured image is null");
Duplication
Line 170
Duplicate code found (appears 3 times)
final SignUpImageDto imageData = SignUpImageDto(
Duplication
Line 225
Duplicate code found (appears 3 times)
final SignUpImageDto imageData = SignUpImageDto(
Duplication
Line 271
Duplicate code found (appears 3 times)
final SignUpImageDto imageData = SignUpImageDto(
Duplication
Line 174
Duplicate code found (appears 3 times)
final finalImage = await pushScreen(
Duplication
Line 230
Duplicate code found (appears 3 times)
final finalImage = await pushScreen(
Duplication
Line 276
Duplicate code found (appears 3 times)
final finalImage = await pushScreen(
Duplication
Line 176
Duplicate code found (appears 3 times)
ScreenRoutes.toSignUpImageConfirmScreen,
Duplication
Line 232
Duplicate code found (appears 3 times)
ScreenRoutes.toSignUpImageConfirmScreen,
Duplication
Line 278
Duplicate code found (appears 3 times)
ScreenRoutes.toSignUpImageConfirmScreen,
Duplication
Line 177
Duplicate code found (appears 3 times)
arguments: imageData,
Duplication
Line 233
Duplicate code found (appears 3 times)
arguments: imageData,
Duplication
Line 279
Duplicate code found (appears 3 times)
arguments: imageData,
Duplication
Line 180
Duplicate code found (appears 3 times)
if (finalImage == null) {
Duplication
Line 236
Duplicate code found (appears 3 times)
if (finalImage == null) {
Duplication
Line 282
Duplicate code found (appears 3 times)
if (finalImage == null) {
Duplication
Line 182
Duplicate code found (appears 2 times)
} else if (isIncompleteRegistration &&
Duplication
Line 190
Duplicate code found (appears 2 times)
} else if (isIncompleteRegistration &&
Duplication
Line 185
Duplicate code found (appears 4 times)
_selfie = finalImage as XFile;
Duplication
Line 188
Duplicate code found (appears 4 times)
_selfie = finalImage as XFile;
Duplication
Line 194
Duplicate code found (appears 4 times)
_selfie = finalImage as XFile;
Duplication
Line 200
Duplicate code found (appears 4 times)
_selfie = finalImage as XFile;
Duplication
Line 197
Duplicate code found (appears 3 times)
_completeImageSelection();
Duplication
Line 243
Duplicate code found (appears 3 times)
_completeImageSelection();
Duplication
Line 287
Duplicate code found (appears 3 times)
_completeImageSelection();
Duplication
Line 227
Duplicate code found (appears 2 times)
title: "is_this_clear",
Duplication
Line 273
Duplicate code found (appears 2 times)
title: "is_this_clear",
Duplication
Line 228
Duplicate code found (appears 2 times)
text: "nic_is_clear",
Duplication
Line 274
Duplicate code found (appears 2 times)
text: "nic_is_clear",
Duplication
Line 239
Duplicate code found (appears 3 times)
_nicFront = finalImage as XFile;
Duplication
Line 242
Duplicate code found (appears 3 times)
_nicFront = finalImage as XFile;
Duplication
Line 246
Duplicate code found (appears 3 times)
_nicFront = finalImage as XFile;
Long Method
Line 59
Method is too long (52 lines)
Widget build(BuildContext context) {
Potential Bug
Line 183
Null check without null-aware operator (?.)
nicFront != null &&
Potential Bug
Line 191
Null check without null-aware operator (?.)
nicFront != null &&
Potential Bug
Line 192
Null check without null-aware operator (?.)
nicBack != null) {
Potential Bug
Line 241
Null check without null-aware operator (?.)
} else if (isIncompleteRegistration && nicBack != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\auth\sign_up_images_upload_screen.dart

Metric Value
Total Lines 569
Code Lines 525
Comment Lines 8
Comment Density 1.5%
Total Issues 76

Issues Found:

Duplication
Line 85
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 100
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 105
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 207
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 93
Duplicate code found (appears 3 times)
decoration: BoxDecoration(
Duplication
Line 286
Duplicate code found (appears 3 times)
decoration: BoxDecoration(
Duplication
Line 298
Duplicate code found (appears 3 times)
decoration: BoxDecoration(
Duplication
Line 94
Duplicate code found (appears 3 times)
color: AppColors.white,
Duplication
Line 287
Duplicate code found (appears 3 times)
color: AppColors.white,
Duplication
Line 299
Duplicate code found (appears 3 times)
color: AppColors.white,
Duplication
Line 112
Duplicate code found (appears 2 times)
valueListenable: _previewImageNotifier,
Duplication
Line 223
Duplicate code found (appears 2 times)
valueListenable: _previewImageNotifier,
Duplication
Line 113
Duplicate code found (appears 2 times)
builder: (context, page, _) {
Duplication
Line 224
Duplicate code found (appears 2 times)
builder: (context, page, _) {
Duplication
Line 134
Duplicate code found (appears 4 times)
indent: ScreenUtil.width * 0.1,
Duplication
Line 149
Duplicate code found (appears 4 times)
indent: ScreenUtil.width * 0.1,
Duplication
Line 163
Duplicate code found (appears 4 times)
indent: ScreenUtil.width * 0.1,
Duplication
Line 182
Duplicate code found (appears 4 times)
indent: ScreenUtil.width * 0.1,
Duplication
Line 135
Duplicate code found (appears 4 times)
endIndent: ScreenUtil.width * 0.1,
Duplication
Line 150
Duplicate code found (appears 4 times)
endIndent: ScreenUtil.width * 0.1,
Duplication
Line 164
Duplicate code found (appears 4 times)
endIndent: ScreenUtil.width * 0.1,
Duplication
Line 183
Duplicate code found (appears 4 times)
endIndent: ScreenUtil.width * 0.1,
Duplication
Line 136
Duplicate code found (appears 4 times)
color: AppColors.grey4,
Duplication
Line 151
Duplicate code found (appears 4 times)
color: AppColors.grey4,
Duplication
Line 165
Duplicate code found (appears 4 times)
color: AppColors.grey4,
Duplication
Line 184
Duplicate code found (appears 4 times)
color: AppColors.grey4,
Duplication
Line 143
Duplicate code found (appears 2 times)
_selfieUploadNotifier,
Duplication
Line 177
Duplicate code found (appears 2 times)
_selfieUploadNotifier,
Duplication
Line 147
Duplicate code found (appears 2 times)
if (_shouldShowUploadTile(ImageType.nicFront))
Duplication
Line 155
Duplicate code found (appears 2 times)
if (_shouldShowUploadTile(ImageType.nicFront))
Duplication
Line 161
Duplicate code found (appears 2 times)
if (_shouldShowUploadTile(ImageType.nicBack))
Duplication
Line 169
Duplicate code found (appears 2 times)
if (_shouldShowUploadTile(ImageType.nicBack))
Duplication
Line 258
Duplicate code found (appears 3 times)
if (isIncompleteRegistration) {
Duplication
Line 517
Duplicate code found (appears 3 times)
if (isIncompleteRegistration) {
Duplication
Line 534
Duplicate code found (appears 3 times)
if (isIncompleteRegistration) {
Duplication
Line 260
Duplicate code found (appears 2 times)
items.add(_getImageContainer(imagesData.selfie));
Duplication
Line 269
Duplicate code found (appears 2 times)
items.add(_getImageContainer(imagesData.selfie));
Duplication
Line 263
Duplicate code found (appears 2 times)
items.add(_getImageContainer(imagesData.nicFront));
Duplication
Line 270
Duplicate code found (appears 2 times)
items.add(_getImageContainer(imagesData.nicFront));
Duplication
Line 266
Duplicate code found (appears 2 times)
items.add(_getImageContainer(imagesData.nicBack));
Duplication
Line 271
Duplicate code found (appears 2 times)
items.add(_getImageContainer(imagesData.nicBack));
Duplication
Line 282
Duplicate code found (appears 2 times)
clipBehavior: Clip.antiAlias,
Duplication
Line 297
Duplicate code found (appears 2 times)
clipBehavior: Clip.antiAlias,
Duplication
Line 290
Duplicate code found (appears 2 times)
color: AppColors.grey3,
Duplication
Line 321
Duplicate code found (appears 2 times)
color: AppColors.grey3,
Duplication
Line 294
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(Ui.getRadius(2)),
Duplication
Line 300
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(Ui.getRadius(2)),
Duplication
Line 335
Duplicate code found (appears 2 times)
imageType == ImageType.selfie
Duplication
Line 343
Duplicate code found (appears 2 times)
imageType == ImageType.selfie
Duplication
Line 337
Duplicate code found (appears 2 times)
: imageType == ImageType.nicFront
Duplication
Line 345
Duplicate code found (appears 2 times)
: imageType == ImageType.nicFront
Duplication
Line 378
Duplicate code found (appears 2 times)
} else if (isIncompleteRegistration &&
Duplication
Line 381
Duplicate code found (appears 2 times)
} else if (isIncompleteRegistration &&
Duplication
Line 380
Duplicate code found (appears 2 times)
_uploadNicFront(images.first);
Duplication
Line 383
Duplicate code found (appears 2 times)
_uploadNicFront(images.first);
Duplication
Line 382
Duplicate code found (appears 2 times)
imageType == ImageType.nicBack) {
Duplication
Line 385
Duplicate code found (appears 2 times)
imageType == ImageType.nicBack) {
Duplication
Line 407
Duplicate code found (appears 3 times)
onSuccess: (String resourceId) {
Duplication
Line 426
Duplicate code found (appears 3 times)
onSuccess: (String resourceId) {
Duplication
Line 458
Duplicate code found (appears 3 times)
onSuccess: (String resourceId) {
Duplication
Line 428
Duplicate code found (appears 2 times)
_nicFrontResource = resourceId;
Duplication
Line 459
Duplicate code found (appears 2 times)
_nicFrontResource = resourceId;
Duplication
Line 434
Duplicate code found (appears 2 times)
onSuccess: (String resourceId2) {
Duplication
Line 477
Duplicate code found (appears 2 times)
onSuccess: (String resourceId2) {
Duplication
Line 436
Duplicate code found (appears 2 times)
_nicBackResource = resourceId2;
Duplication
Line 478
Duplicate code found (appears 2 times)
_nicBackResource = resourceId2;
Duplication
Line 440
Duplicate code found (appears 4 times)
_nicUploadNotifier.value = false;
Duplication
Line 445
Duplicate code found (appears 4 times)
_nicUploadNotifier.value = false;
Duplication
Line 463
Duplicate code found (appears 4 times)
_nicUploadNotifier.value = false;
Duplication
Line 482
Duplicate code found (appears 4 times)
_nicUploadNotifier.value = false;
Duplication
Line 519
Duplicate code found (appears 2 times)
_uploadSelfie(imagesData.selfie);
Duplication
Line 528
Duplicate code found (appears 2 times)
_uploadSelfie(imagesData.selfie);
Duplication
Line 554
Duplicate code found (appears 2 times)
getLangStr(context, "wait_for_image_upload"),
Duplication
Line 564
Duplicate code found (appears 2 times)
getLangStr(context, "wait_for_image_upload"),
Unused Import
Line 1
Unused import: dart:io
import "dart:io";
Long Method
Line 71
Method is too long (167 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\auth\sign_up_image_confirm_screen.dart

Metric Value
Total Lines 132
Code Lines 124
Comment Lines 0
Comment Density 0.0%
Total Issues 17

Issues Found:

Duplication
Line 53
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 68
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 73
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 61
Duplicate code found (appears 3 times)
decoration: BoxDecoration(
Duplication
Line 106
Duplicate code found (appears 3 times)
decoration: BoxDecoration(
Duplication
Line 118
Duplicate code found (appears 3 times)
decoration: BoxDecoration(
Duplication
Line 62
Duplicate code found (appears 3 times)
color: AppColors.white,
Duplication
Line 107
Duplicate code found (appears 3 times)
color: AppColors.white,
Duplication
Line 119
Duplicate code found (appears 3 times)
color: AppColors.white,
Duplication
Line 79
Duplicate code found (appears 2 times)
textAlign: TextAlign.center,
Duplication
Line 85
Duplicate code found (appears 2 times)
textAlign: TextAlign.center,
Duplication
Line 102
Duplicate code found (appears 2 times)
clipBehavior: Clip.antiAlias,
Duplication
Line 117
Duplicate code found (appears 2 times)
clipBehavior: Clip.antiAlias,
Duplication
Line 114
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(Ui.getRadius(2)),
Duplication
Line 120
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(Ui.getRadius(2)),
Unused Import
Line 1
Unused import: dart:io
import "dart:io";
Long Method
Line 36
Method is too long (95 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\auth\sign_up_otp_screen.dart

Metric Value
Total Lines 541
Code Lines 492
Comment Lines 23
Comment Density 4.7%
Total Issues 71

Issues Found:

Duplication
Line 59
Duplicate code found (appears 2 times)
senderNumber: Env.otpSenderName,
Duplication
Line 450
Duplicate code found (appears 2 times)
senderNumber: Env.otpSenderName,
Duplication
Line 63
Duplicate code found (appears 2 times)
_startSessionTimer();
Duplication
Line 460
Duplicate code found (appears 2 times)
_startSessionTimer();
Duplication
Line 76
Duplicate code found (appears 2 times)
const oneSec = Duration(seconds: 1);
Duplication
Line 93
Duplicate code found (appears 2 times)
const oneSec = Duration(seconds: 1);
Duplication
Line 111
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 248
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 113
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 257
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 306
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 121
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(3)),
Duplication
Line 130
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(3)),
Duplication
Line 280
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(3)),
Duplication
Line 124
Duplicate code found (appears 4 times)
textAlign: TextAlign.center,
Duplication
Line 132
Duplicate code found (appears 4 times)
textAlign: TextAlign.center,
Duplication
Line 235
Duplicate code found (appears 4 times)
textAlign: TextAlign.center,
Duplication
Line 317
Duplicate code found (appears 4 times)
textAlign: TextAlign.center,
Duplication
Line 125
Duplicate code found (appears 2 times)
style: TextStyles.signUpTextBtn.copyWith(
Duplication
Line 147
Duplicate code found (appears 2 times)
style: TextStyles.signUpTextBtn.copyWith(
Duplication
Line 126
Duplicate code found (appears 2 times)
color: AppColors.orange,
Duplication
Line 148
Duplicate code found (appears 2 times)
color: AppColors.orange,
Duplication
Line 127
Duplicate code found (appears 2 times)
decoration: TextDecoration.none,
Duplication
Line 149
Duplicate code found (appears 2 times)
decoration: TextDecoration.none,
Duplication
Line 135
Duplicate code found (appears 2 times)
children: [
Duplication
Line 329
Duplicate code found (appears 2 times)
children: [
Duplication
Line 139
Duplicate code found (appears 2 times)
const TextSpan(text: " "),
Duplication
Line 336
Duplicate code found (appears 2 times)
const TextSpan(text: " "),
Duplication
Line 186
Duplicate code found (appears 2 times)
height: ScreenUtil.height,
Duplication
Line 198
Duplicate code found (appears 2 times)
height: ScreenUtil.height,
Duplication
Line 187
Duplicate code found (appears 2 times)
decoration: const BoxDecoration(
Duplication
Line 199
Duplicate code found (appears 2 times)
decoration: const BoxDecoration(
Duplication
Line 188
Duplicate code found (appears 2 times)
image: DecorationImage(
Duplication
Line 200
Duplicate code found (appears 2 times)
image: DecorationImage(
Duplication
Line 191
Duplicate code found (appears 2 times)
), // Replace with your actual image path
Duplication
Line 203
Duplicate code found (appears 2 times)
), // Replace with your actual image path
Duplication
Line 192
Duplicate code found (appears 2 times)
fit: BoxFit.fitWidth,
Duplication
Line 204
Duplicate code found (appears 2 times)
fit: BoxFit.fitWidth,
Duplication
Line 221
Duplicate code found (appears 2 times)
backgroundColor: AppColors.transparent,
Duplication
Line 237
Duplicate code found (appears 2 times)
backgroundColor: AppColors.transparent,
Duplication
Line 252
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(
Duplication
Line 270
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(
Duplication
Line 290
Duplicate code found (appears 2 times)
builder: (context, seconds, child) {
Duplication
Line 324
Duplicate code found (appears 2 times)
builder: (context, seconds, child) {
Duplication
Line 295
Duplicate code found (appears 2 times)
[seconds.toString()],
Duplication
Line 342
Duplicate code found (appears 2 times)
[seconds.toString()],
Duplication
Line 299
Duplicate code found (appears 3 times)
color: AppColors.red2,
Duplication
Line 347
Duplicate code found (appears 3 times)
color: AppColors.red2,
Duplication
Line 367
Duplicate code found (appears 3 times)
color: AppColors.red2,
Duplication
Line 438
Duplicate code found (appears 2 times)
_otpController.clear();
Duplication
Line 486
Duplicate code found (appears 2 times)
_otpController.clear();
Duplication
Line 439
Duplicate code found (appears 4 times)
_progressNotifier.value = true;
Duplication
Line 476
Duplicate code found (appears 4 times)
_progressNotifier.value = true;
Duplication
Line 496
Duplicate code found (appears 4 times)
_progressNotifier.value = true;
Duplication
Line 528
Duplicate code found (appears 4 times)
_progressNotifier.value = true;
Duplication
Line 442
Duplicate code found (appears 3 times)
registerData: widget.registerData ?? RegisterData(),
Duplication
Line 480
Duplicate code found (appears 3 times)
registerData: widget.registerData ?? RegisterData(),
Duplication
Line 503
Duplicate code found (appears 3 times)
registerData: widget.registerData ?? RegisterData(),
Duplication
Line 464
Duplicate code found (appears 4 times)
onFail: (title, message, data) {
Duplication
Line 484
Duplicate code found (appears 4 times)
onFail: (title, message, data) {
Duplication
Line 507
Duplicate code found (appears 4 times)
onFail: (title, message, data) {
Duplication
Line 533
Duplicate code found (appears 4 times)
onFail: (title, message, data) {
Duplication
Line 465
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 487
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 508
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 468
Duplicate code found (appears 4 times)
_progressNotifier.value = false;
Duplication
Line 485
Duplicate code found (appears 4 times)
_progressNotifier.value = false;
Duplication
Line 511
Duplicate code found (appears 4 times)
_progressNotifier.value = false;
Duplication
Line 537
Duplicate code found (appears 4 times)
_progressNotifier.value = false;
Unused Import
Line 1
Unused import: dart:async
import "dart:async";
Long Method
Line 167
Method is too long (264 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\auth\sign_up_screen.dart

Metric Value
Total Lines 1152
Code Lines 1007
Comment Lines 75
Comment Density 7.4%
Total Issues 266

Issues Found:

Duplication
Line 102
Duplicate code found (appears 2 times)
_registerData.isTncAgree = Env.isUserTncAgree;
Duplication
Line 676
Duplicate code found (appears 2 times)
_registerData.isTncAgree = Env.isUserTncAgree;
Duplication
Line 112
Duplicate code found (appears 4 times)
if (_fullNameFocusNode.hasFocus) {
Duplication
Line 133
Duplicate code found (appears 4 times)
if (_fullNameFocusNode.hasFocus) {
Duplication
Line 142
Duplicate code found (appears 4 times)
if (_fullNameFocusNode.hasFocus) {
Duplication
Line 150
Duplicate code found (appears 4 times)
if (_fullNameFocusNode.hasFocus) {
Duplication
Line 118
Duplicate code found (appears 3 times)
_isNameValid = false;
Duplication
Line 177
Duplicate code found (appears 3 times)
_isNameValid = false;
Duplication
Line 311
Duplicate code found (appears 3 times)
_isNameValid = false;
Duplication
Line 134
Duplicate code found (appears 4 times)
print("TextField has lost focus");
Duplication
Line 137
Duplicate code found (appears 4 times)
print("TextField has lost focus");
Duplication
Line 145
Duplicate code found (appears 4 times)
print("TextField has lost focus");
Duplication
Line 153
Duplicate code found (appears 4 times)
print("TextField has lost focus");
Duplication
Line 159
Duplicate code found (appears 2 times)
_isMobileValid = null;
Duplication
Line 178
Duplicate code found (appears 2 times)
_isMobileValid = null;
Duplication
Line 161
Duplicate code found (appears 4 times)
_isPasswordValid = null;
Duplication
Line 180
Duplicate code found (appears 4 times)
_isPasswordValid = null;
Duplication
Line 203
Duplicate code found (appears 4 times)
_isPasswordValid = null;
Duplication
Line 224
Duplicate code found (appears 4 times)
_isPasswordValid = null;
Duplication
Line 162
Duplicate code found (appears 5 times)
_isConfirmPasswordValid = null;
Duplication
Line 181
Duplicate code found (appears 5 times)
_isConfirmPasswordValid = null;
Duplication
Line 204
Duplicate code found (appears 5 times)
_isConfirmPasswordValid = null;
Duplication
Line 225
Duplicate code found (appears 5 times)
_isConfirmPasswordValid = null;
Duplication
Line 252
Duplicate code found (appears 5 times)
_isConfirmPasswordValid = null;
Duplication
Line 172
Duplicate code found (appears 2 times)
final dynamic confirmPasswordToolTip =
Duplication
Line 272
Duplicate code found (appears 2 times)
final dynamic confirmPasswordToolTip =
Duplication
Line 173
Duplicate code found (appears 2 times)
_confirmPasswordToolTipKey.currentState;
Duplication
Line 273
Duplicate code found (appears 2 times)
_confirmPasswordToolTipKey.currentState;
Duplication
Line 184
Duplicate code found (appears 2 times)
_nicController.clear();
Duplication
Line 207
Duplicate code found (appears 2 times)
_nicController.clear();
Duplication
Line 185
Duplicate code found (appears 2 times)
_passwordController.clear();
Duplication
Line 208
Duplicate code found (appears 2 times)
_passwordController.clear();
Duplication
Line 186
Duplicate code found (appears 5 times)
_passwordConfirmController.clear();
Duplication
Line 209
Duplicate code found (appears 5 times)
_passwordConfirmController.clear();
Duplication
Line 254
Duplicate code found (appears 5 times)
_passwordConfirmController.clear();
Duplication
Line 276
Duplicate code found (appears 5 times)
_passwordConfirmController.clear();
Duplication
Line 528
Duplicate code found (appears 5 times)
_passwordConfirmController.clear();
Duplication
Line 188
Duplicate code found (appears 6 times)
SchedulerBinding.instance.addPostFrameCallback((_) {
Duplication
Line 211
Duplicate code found (appears 6 times)
SchedulerBinding.instance.addPostFrameCallback((_) {
Duplication
Line 232
Duplicate code found (appears 6 times)
SchedulerBinding.instance.addPostFrameCallback((_) {
Duplication
Line 243
Duplicate code found (appears 6 times)
SchedulerBinding.instance.addPostFrameCallback((_) {
Duplication
Line 256
Duplicate code found (appears 6 times)
SchedulerBinding.instance.addPostFrameCallback((_) {
Duplication
Line 271
Duplicate code found (appears 6 times)
SchedulerBinding.instance.addPostFrameCallback((_) {
Duplication
Line 198
Duplicate code found (appears 2 times)
final RegExp mobileNumberRegex = RegExp(r"^\d{9}$");
Duplication
Line 394
Duplicate code found (appears 2 times)
final RegExp mobileNumberRegex = RegExp(r"^\d{9}$");
Duplication
Line 233
Duplicate code found (appears 2 times)
final dynamic nicToolTip = _nicTooltipLKey.currentState;
Duplication
Line 244
Duplicate code found (appears 2 times)
final dynamic nicToolTip = _nicTooltipLKey.currentState;
Duplication
Line 234
Duplicate code found (appears 2 times)
nicToolTip.ensureTooltipVisible();
Duplication
Line 245
Duplicate code found (appears 2 times)
nicToolTip.ensureTooltipVisible();
Duplication
Line 251
Duplicate code found (appears 3 times)
_isPasswordValid = false;
Duplication
Line 531
Duplicate code found (appears 3 times)
_isPasswordValid = false;
Duplication
Line 535
Duplicate code found (appears 3 times)
_isPasswordValid = false;
Duplication
Line 269
Duplicate code found (appears 3 times)
_isConfirmPasswordValid = false;
Duplication
Line 601
Duplicate code found (appears 3 times)
_isConfirmPasswordValid = false;
Duplication
Line 605
Duplicate code found (appears 3 times)
_isConfirmPasswordValid = false;
Duplication
Line 293
Duplicate code found (appears 2 times)
progressNotifier: _progressNotifier,
Duplication
Line 1013
Duplicate code found (appears 2 times)
progressNotifier: _progressNotifier,
Duplication
Line 318
Duplicate code found (appears 5 times)
_onFieldValueUpdate();
Duplication
Line 405
Duplicate code found (appears 5 times)
_onFieldValueUpdate();
Duplication
Line 474
Duplicate code found (appears 5 times)
_onFieldValueUpdate();
Duplication
Line 542
Duplicate code found (appears 5 times)
_onFieldValueUpdate();
Duplication
Line 612
Duplicate code found (appears 5 times)
_onFieldValueUpdate();
Duplication
Line 347
Duplicate code found (appears 5 times)
excludeFromSemantics: true,
Duplication
Line 415
Duplicate code found (appears 5 times)
excludeFromSemantics: true,
Duplication
Line 481
Duplicate code found (appears 5 times)
excludeFromSemantics: true,
Duplication
Line 548
Duplicate code found (appears 5 times)
excludeFromSemantics: true,
Duplication
Line 617
Duplicate code found (appears 5 times)
excludeFromSemantics: true,
Duplication
Line 348
Duplicate code found (appears 5 times)
waitDuration: const Duration(days: 2),
Duplication
Line 416
Duplicate code found (appears 5 times)
waitDuration: const Duration(days: 2),
Duplication
Line 482
Duplicate code found (appears 5 times)
waitDuration: const Duration(days: 2),
Duplication
Line 549
Duplicate code found (appears 5 times)
waitDuration: const Duration(days: 2),
Duplication
Line 618
Duplicate code found (appears 5 times)
waitDuration: const Duration(days: 2),
Duplication
Line 350
Duplicate code found (appears 5 times)
margin: EdgeInsets.only(right: Ui.getPadding(4)),
Duplication
Line 418
Duplicate code found (appears 5 times)
margin: EdgeInsets.only(right: Ui.getPadding(4)),
Duplication
Line 487
Duplicate code found (appears 5 times)
margin: EdgeInsets.only(right: Ui.getPadding(4)),
Duplication
Line 551
Duplicate code found (appears 5 times)
margin: EdgeInsets.only(right: Ui.getPadding(4)),
Duplication
Line 620
Duplicate code found (appears 5 times)
margin: EdgeInsets.only(right: Ui.getPadding(4)),
Duplication
Line 351
Duplicate code found (appears 5 times)
decoration: BoxDecoration(
Duplication
Line 419
Duplicate code found (appears 5 times)
decoration: BoxDecoration(
Duplication
Line 488
Duplicate code found (appears 5 times)
decoration: BoxDecoration(
Duplication
Line 552
Duplicate code found (appears 5 times)
decoration: BoxDecoration(
Duplication
Line 621
Duplicate code found (appears 5 times)
decoration: BoxDecoration(
Duplication
Line 352
Duplicate code found (appears 5 times)
color: AppColors.red3,
Duplication
Line 420
Duplicate code found (appears 5 times)
color: AppColors.red3,
Duplication
Line 489
Duplicate code found (appears 5 times)
color: AppColors.red3,
Duplication
Line 553
Duplicate code found (appears 5 times)
color: AppColors.red3,
Duplication
Line 622
Duplicate code found (appears 5 times)
color: AppColors.red3,
Duplication
Line 353
Duplicate code found (appears 5 times)
borderRadius: BorderRadius.circular(
Duplication
Line 421
Duplicate code found (appears 5 times)
borderRadius: BorderRadius.circular(
Duplication
Line 490
Duplicate code found (appears 5 times)
borderRadius: BorderRadius.circular(
Duplication
Line 554
Duplicate code found (appears 5 times)
borderRadius: BorderRadius.circular(
Duplication
Line 623
Duplicate code found (appears 5 times)
borderRadius: BorderRadius.circular(
Duplication
Line 359
Duplicate code found (appears 5 times)
triggerMode: TooltipTriggerMode.manual,
Duplication
Line 427
Duplicate code found (appears 5 times)
triggerMode: TooltipTriggerMode.manual,
Duplication
Line 496
Duplicate code found (appears 5 times)
triggerMode: TooltipTriggerMode.manual,
Duplication
Line 560
Duplicate code found (appears 5 times)
triggerMode: TooltipTriggerMode.manual,
Duplication
Line 629
Duplicate code found (appears 5 times)
triggerMode: TooltipTriggerMode.manual,
Duplication
Line 362
Duplicate code found (appears 5 times)
child: const CircleAvatar(
Duplication
Line 429
Duplicate code found (appears 5 times)
child: const CircleAvatar(
Duplication
Line 498
Duplicate code found (appears 5 times)
child: const CircleAvatar(
Duplication
Line 562
Duplicate code found (appears 5 times)
child: const CircleAvatar(
Duplication
Line 631
Duplicate code found (appears 5 times)
child: const CircleAvatar(
Duplication
Line 363
Duplicate code found (appears 5 times)
backgroundColor: AppColors.red3,
Duplication
Line 430
Duplicate code found (appears 5 times)
backgroundColor: AppColors.red3,
Duplication
Line 499
Duplicate code found (appears 5 times)
backgroundColor: AppColors.red3,
Duplication
Line 563
Duplicate code found (appears 5 times)
backgroundColor: AppColors.red3,
Duplication
Line 632
Duplicate code found (appears 5 times)
backgroundColor: AppColors.red3,
Duplication
Line 368
Duplicate code found (appears 10 times)
color: AppColors.white,
Duplication
Line 378
Duplicate code found (appears 10 times)
color: AppColors.white,
Duplication
Line 435
Duplicate code found (appears 10 times)
color: AppColors.white,
Duplication
Line 445
Duplicate code found (appears 10 times)
color: AppColors.white,
Duplication
Line 504
Duplicate code found (appears 10 times)
color: AppColors.white,
Duplication
Line 514
Duplicate code found (appears 10 times)
color: AppColors.white,
Duplication
Line 568
Duplicate code found (appears 10 times)
color: AppColors.white,
Duplication
Line 578
Duplicate code found (appears 10 times)
color: AppColors.white,
Duplication
Line 637
Duplicate code found (appears 10 times)
color: AppColors.white,
Duplication
Line 647
Duplicate code found (appears 10 times)
color: AppColors.white,
Duplication
Line 372
Duplicate code found (appears 5 times)
: const CircleAvatar(
Duplication
Line 439
Duplicate code found (appears 5 times)
: const CircleAvatar(
Duplication
Line 508
Duplicate code found (appears 5 times)
: const CircleAvatar(
Duplication
Line 572
Duplicate code found (appears 5 times)
: const CircleAvatar(
Duplication
Line 641
Duplicate code found (appears 5 times)
: const CircleAvatar(
Duplication
Line 373
Duplicate code found (appears 5 times)
backgroundColor: AppColors.green,
Duplication
Line 440
Duplicate code found (appears 5 times)
backgroundColor: AppColors.green,
Duplication
Line 509
Duplicate code found (appears 5 times)
backgroundColor: AppColors.green,
Duplication
Line 573
Duplicate code found (appears 5 times)
backgroundColor: AppColors.green,
Duplication
Line 642
Duplicate code found (appears 5 times)
backgroundColor: AppColors.green,
Duplication
Line 385
Duplicate code found (appears 2 times)
printLog("OnTap Called");
Duplication
Line 586
Duplicate code found (appears 2 times)
printLog("OnTap Called");
Duplication
Line 388
Duplicate code found (appears 2 times)
child: MobileInputField(
Duplication
Line 904
Duplicate code found (appears 2 times)
child: MobileInputField(
Duplication
Line 392
Duplicate code found (appears 3 times)
inputLayout: InputLayout.center,
Duplication
Line 457
Duplicate code found (appears 3 times)
inputLayout: InputLayout.center,
Duplication
Line 526
Duplicate code found (appears 3 times)
inputLayout: InputLayout.center,
Duplication
Line 524
Duplicate code found (appears 2 times)
child: PasswordInputField(
Duplication
Line 589
Duplicate code found (appears 2 times)
child: PasswordInputField(
Duplication
Line 529
Duplicate code found (appears 2 times)
if (_passwordController.text.length < 8) {
Duplication
Line 599
Duplicate code found (appears 2 times)
if (_passwordController.text.length < 8) {
Duplication
Line 533
Duplicate code found (appears 2 times)
} else if (_passwordController.text != text) {
Duplication
Line 603
Duplicate code found (appears 2 times)
} else if (_passwordController.text != text) {
Duplication
Line 682
Duplicate code found (appears 4 times)
_progressNotifier.value = true;
Duplication
Line 966
Duplicate code found (appears 4 times)
_progressNotifier.value = true;
Duplication
Line 1024
Duplicate code found (appears 4 times)
_progressNotifier.value = true;
Duplication
Line 1113
Duplicate code found (appears 4 times)
_progressNotifier.value = true;
Duplication
Line 686
Duplicate code found (appears 2 times)
mobile: _mobileController.text,
Duplication
Line 972
Duplicate code found (appears 2 times)
mobile: _mobileController.text,
Duplication
Line 696
Duplicate code found (appears 2 times)
onFail: (title, message, data) {
Duplication
Line 978
Duplicate code found (appears 2 times)
onFail: (title, message, data) {
Duplication
Line 701
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 881
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1042
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 705
Duplicate code found (appears 4 times)
_progressNotifier.value = false;
Duplication
Line 984
Duplicate code found (appears 4 times)
_progressNotifier.value = false;
Duplication
Line 1045
Duplicate code found (appears 4 times)
_progressNotifier.value = false;
Duplication
Line 1132
Duplicate code found (appears 4 times)
_progressNotifier.value = false;
Duplication
Line 723
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 740
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 895
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 1055
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 733
Duplicate code found (appears 3 times)
ScreenRoutes.toSignInScreen,
Duplication
Line 1034
Duplicate code found (appears 3 times)
ScreenRoutes.toSignInScreen,
Duplication
Line 1148
Duplicate code found (appears 3 times)
ScreenRoutes.toSignInScreen,
Duplication
Line 734
Duplicate code found (appears 3 times)
arguments: _mobileController.text,
Duplication
Line 1035
Duplicate code found (appears 3 times)
arguments: _mobileController.text,
Duplication
Line 1149
Duplicate code found (appears 3 times)
arguments: _mobileController.text,
Duplication
Line 738
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 784
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 826
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 746
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.18),
Duplication
Line 790
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.18),
Duplication
Line 747
Duplicate code found (appears 2 times)
fontWeight: FontWeight.bold,
Duplication
Line 791
Duplicate code found (appears 2 times)
fontWeight: FontWeight.bold,
Duplication
Line 748
Duplicate code found (appears 2 times)
color: AppColors.black,
Duplication
Line 792
Duplicate code found (appears 2 times)
color: AppColors.black,
Duplication
Line 749
Duplicate code found (appears 2 times)
decoration: TextDecoration.underline,
Duplication
Line 793
Duplicate code found (appears 2 times)
decoration: TextDecoration.underline,
Duplication
Line 754
Duplicate code found (appears 2 times)
width: ScreenUtil.width * 0.002,
Duplication
Line 797
Duplicate code found (appears 2 times)
width: ScreenUtil.width * 0.002,
Duplication
Line 758
Duplicate code found (appears 2 times)
color: AppColors.red,
Duplication
Line 801
Duplicate code found (appears 2 times)
color: AppColors.red,
Duplication
Line 765
Duplicate code found (appears 2 times)
height: ScreenUtil.height * 0.01,
Duplication
Line 808
Duplicate code found (appears 2 times)
height: ScreenUtil.height * 0.01,
Duplication
Line 768
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(
Duplication
Line 811
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(
Duplication
Line 769
Duplicate code found (appears 2 times)
horizontal: Ui.getPadding(2),
Duplication
Line 812
Duplicate code found (appears 2 times)
horizontal: Ui.getPadding(2),
Duplication
Line 773
Duplicate code found (appears 2 times)
style: TextStyle(fontSize: Ui.getFontSize(1)),
Duplication
Line 816
Duplicate code found (appears 2 times)
style: TextStyle(fontSize: Ui.getFontSize(1)),
Duplication
Line 823
Duplicate code found (appears 2 times)
height: Ui.getPadding(1.25),
Duplication
Line 835
Duplicate code found (appears 2 times)
height: Ui.getPadding(1.25),
Duplication
Line 855
Duplicate code found (appears 2 times)
final formKey = GlobalKey();
Duplication
Line 997
Duplicate code found (appears 2 times)
final formKey = GlobalKey();
Duplication
Line 858
Duplicate code found (appears 4 times)
AlertUtil.showDialog(
Duplication
Line 947
Duplicate code found (appears 4 times)
AlertUtil.showDialog(
Duplication
Line 1007
Duplicate code found (appears 4 times)
AlertUtil.showDialog(
Duplication
Line 1094
Duplicate code found (appears 4 times)
AlertUtil.showDialog(
Duplication
Line 862
Duplicate code found (appears 2 times)
titleStyle: TextStyles.defaultText,
Duplication
Line 1011
Duplicate code found (appears 2 times)
titleStyle: TextStyles.defaultText,
Duplication
Line 868
Duplicate code found (appears 2 times)
if (formKey.currentState?.validate() ?? false) {
Duplication
Line 1016
Duplicate code found (appears 2 times)
if (formKey.currentState?.validate() ?? false) {
Duplication
Line 880
Duplicate code found (appears 2 times)
onFail: (title, message, _) {
Duplication
Line 1039
Duplicate code found (appears 2 times)
onFail: (title, message, _) {
Duplication
Line 892
Duplicate code found (appears 2 times)
onTap: () => grabFocus(context),
Duplication
Line 1052
Duplicate code found (appears 2 times)
onTap: () => grabFocus(context),
Duplication
Line 894
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 1054
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 899
Duplicate code found (appears 4 times)
style: TextStyles.defaultText,
Duplication
Line 914
Duplicate code found (appears 4 times)
style: TextStyles.defaultText,
Duplication
Line 1059
Duplicate code found (appears 4 times)
style: TextStyles.defaultText,
Duplication
Line 1069
Duplicate code found (appears 4 times)
style: TextStyles.defaultText,
Duplication
Line 901
Duplicate code found (appears 5 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 911
Duplicate code found (appears 5 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 916
Duplicate code found (appears 5 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 1061
Duplicate code found (appears 5 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 1071
Duplicate code found (appears 5 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 908
Duplicate code found (appears 2 times)
errorStyle: const TextStyle(),
Duplication
Line 927
Duplicate code found (appears 2 times)
errorStyle: const TextStyle(),
Duplication
Line 937
Duplicate code found (appears 6 times)
_otpController.clear();
Duplication
Line 976
Duplicate code found (appears 6 times)
_otpController.clear();
Duplication
Line 981
Duplicate code found (appears 6 times)
_otpController.clear();
Duplication
Line 985
Duplicate code found (appears 6 times)
_otpController.clear();
Duplication
Line 1084
Duplicate code found (appears 6 times)
_otpController.clear();
Duplication
Line 1133
Duplicate code found (appears 6 times)
_otpController.clear();
Duplication
Line 938
Duplicate code found (appears 2 times)
if (_otpController is OTPTextEditController) {
Duplication
Line 1085
Duplicate code found (appears 2 times)
if (_otpController is OTPTextEditController) {
Duplication
Line 939
Duplicate code found (appears 2 times)
(_otpController as OTPTextEditController).startListenUserConsent(
Duplication
Line 1086
Duplicate code found (appears 2 times)
(_otpController as OTPTextEditController).startListenUserConsent(
Duplication
Line 941
Duplicate code found (appears 2 times)
return RegExp(r"(\d{6})").stringMatch(code ?? "") ?? "";
Duplication
Line 1088
Duplicate code found (appears 2 times)
return RegExp(r"(\d{6})").stringMatch(code ?? "") ?? "";
Duplication
Line 944
Duplicate code found (appears 2 times)
senderNumber: Env.otpSenderName,
Duplication
Line 1091
Duplicate code found (appears 2 times)
senderNumber: Env.otpSenderName,
Duplication
Line 950
Duplicate code found (appears 2 times)
buttonText: "submit_otp",
Duplication
Line 1097
Duplicate code found (appears 2 times)
buttonText: "submit_otp",
Duplication
Line 951
Duplicate code found (appears 2 times)
formKey: _otpFormKey,
Duplication
Line 1098
Duplicate code found (appears 2 times)
formKey: _otpFormKey,
Duplication
Line 952
Duplicate code found (appears 2 times)
isDismissible: false,
Duplication
Line 1099
Duplicate code found (appears 2 times)
isDismissible: false,
Duplication
Line 959
Duplicate code found (appears 2 times)
controller: _otpController,
Duplication
Line 1106
Duplicate code found (appears 2 times)
controller: _otpController,
Duplication
Line 964
Duplicate code found (appears 2 times)
if (_otpFormKey.currentState?.validate() ?? false) {
Duplication
Line 1111
Duplicate code found (appears 2 times)
if (_otpFormKey.currentState?.validate() ?? false) {
Duplication
Line 970
Duplicate code found (appears 2 times)
otp: _otpController.text,
Duplication
Line 1117
Duplicate code found (appears 2 times)
otp: _otpController.text,
Duplication
Line 975
Duplicate code found (appears 2 times)
_showSetupPasswordSheet(username);
Duplication
Line 1040
Duplicate code found (appears 2 times)
_showSetupPasswordSheet(username);
Duplication
Line 979
Duplicate code found (appears 2 times)
_promptOtpDialog(username);
Duplication
Line 1128
Duplicate code found (appears 2 times)
_promptOtpDialog(username);
Duplication
Line 989
Duplicate code found (appears 2 times)
printLog("Invalid otp given");
Duplication
Line 1137
Duplicate code found (appears 2 times)
printLog("Invalid otp given");
Duplication
Line 1064
Duplicate code found (appears 2 times)
errorStyle: TextStyle(fontSize: Ui.getFontSize(1)),
Duplication
Line 1074
Duplicate code found (appears 2 times)
errorStyle: TextStyle(fontSize: Ui.getFontSize(1)),
Unused Import
Line 1
Unused import: dart:io
import "dart:io";
Long Method
Line 286
Method is too long (371 lines)
Widget build(BuildContext context) {
Dead Code
Line 111
Private method '_onFullNameFocusChange' is never called
void _onFullNameFocusChange() {
Dead Code
Line 132
Private method '_onMobileNumberChange' is never called
void _onMobileNumberChange() {
Dead Code
Line 141
Private method '_onNicChange' is never called
void _onNicChange() {
Dead Code
Line 149
Private method '_onPasswordChange' is never called
void _onPasswordChange() {
Dead Code
Line 157
Private method '_resetField' is never called
void _resetField() {
Potential Bug
Line 344
Null check without null-aware operator (?.)
(_isNameValid != null)
Potential Bug
Line 412
Null check without null-aware operator (?.)
suffixIcon: (_isMobileValid != null)
Potential Bug
Line 478
Null check without null-aware operator (?.)
suffixIcon: (_isNicValid != null)
Potential Bug
Line 545
Null check without null-aware operator (?.)
suffixIcon: (_isPasswordValid != null)
Potential Bug
Line 614
Null check without null-aware operator (?.)
suffixIcon: (_isConfirmPasswordValid != null)
Potential Bug
Line 923
Null check without null-aware operator (?.)
return (errorText != null)
Potential Bug
Line 1125
Null check without null-aware operator (?.)
if ((data["data"] != null ||
Potential Bug
Line 1126
Null check without null-aware operator (?.)
data["data"]["remaining_attempts"] != null) &&

C:\Users\PM_User\Documents\upay-mobile\lib\screens\auth\sign_up_welcome_screen.dart

Metric Value
Total Lines 100
Code Lines 96
Comment Lines 1
Comment Density 1.0%
Total Issues 20

Issues Found:

Duplication
Line 42
Duplicate code found (appears 2 times)
const ColumnSpacer(3),
Duplication
Line 84
Duplicate code found (appears 2 times)
const ColumnSpacer(3),
Duplication
Line 48
Duplicate code found (appears 4 times)
color: AppColors.black,
Duplication
Line 57
Duplicate code found (appears 4 times)
color: AppColors.black,
Duplication
Line 69
Duplicate code found (appears 4 times)
color: AppColors.black,
Duplication
Line 79
Duplicate code found (appears 4 times)
color: AppColors.black,
Duplication
Line 50
Duplicate code found (appears 4 times)
textAlign: TextAlign.center,
Duplication
Line 60
Duplicate code found (appears 4 times)
textAlign: TextAlign.center,
Duplication
Line 71
Duplicate code found (appears 4 times)
textAlign: TextAlign.center,
Duplication
Line 82
Duplicate code found (appears 4 times)
textAlign: TextAlign.center,
Duplication
Line 55
Duplicate code found (appears 3 times)
style: TextStyles.signUpText.copyWith(
Duplication
Line 67
Duplicate code found (appears 3 times)
style: TextStyles.signUpText.copyWith(
Duplication
Line 77
Duplicate code found (appears 3 times)
style: TextStyles.signUpText.copyWith(
Duplication
Line 56
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.4),
Duplication
Line 68
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.4),
Duplication
Line 58
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w500,
Duplication
Line 80
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w500,
Duplication
Line 62
Duplicate code found (appears 2 times)
const ColumnSpacer(2),
Duplication
Line 74
Duplicate code found (appears 2 times)
const ColumnSpacer(2),
Long Method
Line 25
Method is too long (74 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\banking\add_loans_view.dart

Metric Value
Total Lines 98
Code Lines 90
Comment Lines 0
Comment Density 0.0%
Total Issues 1

Issues Found:

Long Method
Line 45
Method is too long (52 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\banking\banking_info_screen.dart

Metric Value
Total Lines 296
Code Lines 270
Comment Lines 18
Comment Density 6.7%
Total Issues 40

Issues Found:

Duplication
Line 27
Duplicate code found (appears 2 times)
Widget build(BuildContext context) {
Duplication
Line 165
Duplicate code found (appears 2 times)
Widget build(BuildContext context) {
Duplication
Line 38
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 50
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 63
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 247
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 43
Duplicate code found (appears 2 times)
width: ScreenUtil.width,
Duplication
Line 93
Duplicate code found (appears 2 times)
width: ScreenUtil.width,
Duplication
Line 44
Duplicate code found (appears 2 times)
color: AppColors.transparent,
Duplication
Line 94
Duplicate code found (appears 2 times)
color: AppColors.transparent,
Duplication
Line 46
Duplicate code found (appears 3 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 65
Duplicate code found (appears 3 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 233
Duplicate code found (appears 3 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 47
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 51
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 64
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 234
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 69
Duplicate code found (appears 2 times)
AmountUtil.formatAmount(
Duplication
Line 255
Duplicate code found (appears 2 times)
AmountUtil.formatAmount(
Duplication
Line 74
Duplicate code found (appears 2 times)
style: TextStyles.summaryTextStyle
Duplication
Line 80
Duplicate code found (appears 2 times)
style: TextStyles.summaryTextStyle
Duplication
Line 99
Duplicate code found (appears 3 times)
contentHeight: contentHeight,
Duplication
Line 106
Duplicate code found (appears 3 times)
contentHeight: contentHeight,
Duplication
Line 113
Duplicate code found (appears 3 times)
contentHeight: contentHeight,
Duplication
Line 100
Duplicate code found (appears 3 times)
paddingArea: paddingArea,
Duplication
Line 107
Duplicate code found (appears 3 times)
paddingArea: paddingArea,
Duplication
Line 114
Duplicate code found (appears 3 times)
paddingArea: paddingArea,
Duplication
Line 102
Duplicate code found (appears 3 times)
productItemV2: widget.productItem,
Duplication
Line 109
Duplicate code found (appears 3 times)
productItemV2: widget.productItem,
Duplication
Line 116
Duplicate code found (appears 3 times)
productItemV2: widget.productItem,
Duplication
Line 185
Duplicate code found (appears 3 times)
arguments: BankingRouteData(
Duplication
Line 195
Duplicate code found (appears 3 times)
arguments: BankingRouteData(
Duplication
Line 204
Duplicate code found (appears 3 times)
arguments: BankingRouteData(
Duplication
Line 238
Duplicate code found (appears 2 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 261
Duplicate code found (appears 2 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 240
Duplicate code found (appears 3 times)
.getProductAccountListByIndex(index)
Duplication
Line 263
Duplicate code found (appears 3 times)
.getProductAccountListByIndex(index)
Duplication
Line 280
Duplicate code found (appears 3 times)
.getProductAccountListByIndex(index)
Long Method
Line 27
Method is too long (118 lines)
Widget build(BuildContext context) {
Long Method
Line 165
Method is too long (130 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\banking\banking_recent_transactions_screen.dart

Metric Value
Total Lines 856
Code Lines 744
Comment Lines 90
Comment Density 12.1%
Total Issues 100

Issues Found:

Duplication
Line 83
Duplicate code found (appears 2 times)
setState(() => _isLoading = true);
Duplication
Line 114
Duplicate code found (appears 2 times)
setState(() => _isLoading = true);
Duplication
Line 91
Duplicate code found (appears 2 times)
toDate: DateFormatUtil.getFormattedDateTime(_toDate),
Duplication
Line 118
Duplicate code found (appears 2 times)
toDate: DateFormatUtil.getFormattedDateTime(_toDate),
Duplication
Line 92
Duplicate code found (appears 2 times)
fromDate: DateFormatUtil.getFormattedDateTime(_fromDate),
Duplication
Line 117
Duplicate code found (appears 2 times)
fromDate: DateFormatUtil.getFormattedDateTime(_fromDate),
Duplication
Line 93
Duplicate code found (appears 2 times)
accountNumber: (_currentIndex != null)
Duplication
Line 119
Duplicate code found (appears 2 times)
accountNumber: (_currentIndex != null)
Duplication
Line 98
Duplicate code found (appears 3 times)
(_currentIndex != null)
Duplication
Line 163
Duplicate code found (appears 3 times)
(_currentIndex != null)
Duplication
Line 549
Duplicate code found (appears 3 times)
(_currentIndex != null)
Duplication
Line 99
Duplicate code found (appears 2 times)
? _bankAccounts[_currentIndex!].history?.clear()
Duplication
Line 164
Duplicate code found (appears 2 times)
? _bankAccounts[_currentIndex!].history?.clear()
Duplication
Line 109
Duplicate code found (appears 2 times)
onComplete: () => setState(() => _isLoading = false),
Duplication
Line 126
Duplicate code found (appears 2 times)
onComplete: () => setState(() => _isLoading = false),
Duplication
Line 166
Duplicate code found (appears 3 times)
_getTransactionTapped = false;
Duplication
Line 187
Duplicate code found (appears 3 times)
_getTransactionTapped = false;
Duplication
Line 346
Duplicate code found (appears 3 times)
_getTransactionTapped = false;
Duplication
Line 203
Duplicate code found (appears 5 times)
padding: EdgeInsets.symmetric(
Duplication
Line 272
Duplicate code found (appears 5 times)
padding: EdgeInsets.symmetric(
Duplication
Line 557
Duplicate code found (appears 5 times)
padding: EdgeInsets.symmetric(
Duplication
Line 665
Duplicate code found (appears 5 times)
padding: EdgeInsets.symmetric(
Duplication
Line 699
Duplicate code found (appears 5 times)
padding: EdgeInsets.symmetric(
Duplication
Line 207
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 216
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 291
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 385
Duplicate code found (appears 4 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 212
Duplicate code found (appears 2 times)
width: ScreenUtil.width,
Duplication
Line 322
Duplicate code found (appears 2 times)
width: ScreenUtil.width,
Duplication
Line 213
Duplicate code found (appears 2 times)
color: AppColors.transparent,
Duplication
Line 323
Duplicate code found (appears 2 times)
color: AppColors.transparent,
Duplication
Line 218
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 738
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 231
Duplicate code found (appears 2 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 707
Duplicate code found (appears 2 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 233
Duplicate code found (appears 4 times)
color: AppColors.white,
Duplication
Line 261
Duplicate code found (appears 4 times)
color: AppColors.white,
Duplication
Line 277
Duplicate code found (appears 4 times)
color: AppColors.white,
Duplication
Line 364
Duplicate code found (appears 4 times)
color: AppColors.white,
Duplication
Line 246
Duplicate code found (appears 2 times)
height: contentHeight *
Duplication
Line 716
Duplicate code found (appears 2 times)
height: contentHeight *
Duplication
Line 254
Duplicate code found (appears 2 times)
padding: EdgeInsets.only(
Duplication
Line 746
Duplicate code found (appears 2 times)
padding: EdgeInsets.only(
Duplication
Line 263
Duplicate code found (appears 2 times)
decoration: TextDecoration.underline,
Duplication
Line 650
Duplicate code found (appears 2 times)
decoration: TextDecoration.underline,
Duplication
Line 273
Duplicate code found (appears 3 times)
horizontal: Ui.getPadding(2),
Duplication
Line 558
Duplicate code found (appears 3 times)
horizontal: Ui.getPadding(2),
Duplication
Line 700
Duplicate code found (appears 3 times)
horizontal: Ui.getPadding(2),
Duplication
Line 276
Duplicate code found (appears 4 times)
decoration: BoxDecoration(
Duplication
Line 363
Duplicate code found (appears 4 times)
decoration: BoxDecoration(
Duplication
Line 561
Duplicate code found (appears 4 times)
decoration: BoxDecoration(
Duplication
Line 669
Duplicate code found (appears 4 times)
decoration: BoxDecoration(
Duplication
Line 284
Duplicate code found (appears 2 times)
blurRadius: Ui.getRadius(1.1),
Duplication
Line 376
Duplicate code found (appears 2 times)
blurRadius: Ui.getRadius(1.1),
Duplication
Line 293
Duplicate code found (appears 3 times)
MainAxisAlignment.spaceBetween,
Duplication
Line 642
Duplicate code found (appears 3 times)
MainAxisAlignment.spaceBetween,
Duplication
Line 768
Duplicate code found (appears 3 times)
MainAxisAlignment.spaceBetween,
Duplication
Line 303
Duplicate code found (appears 3 times)
width: Ui.getPadding(1),
Duplication
Line 395
Duplicate code found (appears 3 times)
width: Ui.getPadding(1),
Duplication
Line 683
Duplicate code found (appears 3 times)
width: Ui.getPadding(1),
Duplication
Line 360
Duplicate code found (appears 2 times)
horizontal: Ui.getPadding(1),
Duplication
Line 666
Duplicate code found (appears 2 times)
horizontal: Ui.getPadding(1),
Duplication
Line 361
Duplicate code found (appears 2 times)
vertical: Ui.getPadding(2),
Duplication
Line 559
Duplicate code found (appears 2 times)
vertical: Ui.getPadding(2),
Duplication
Line 365
Duplicate code found (appears 3 times)
borderRadius: BorderRadius.circular(
Duplication
Line 563
Duplicate code found (appears 3 times)
borderRadius: BorderRadius.circular(
Duplication
Line 671
Duplicate code found (appears 3 times)
borderRadius: BorderRadius.circular(
Duplication
Line 384
Duplicate code found (appears 2 times)
MainAxisAlignment.spaceAround,
Duplication
Line 569
Duplicate code found (appears 2 times)
MainAxisAlignment.spaceAround,
Duplication
Line 450
Duplicate code found (appears 2 times)
CrossAxisAlignment.end,
Duplication
Line 799
Duplicate code found (appears 2 times)
CrossAxisAlignment.end,
Duplication
Line 458
Duplicate code found (appears 2 times)
getLangReplaced(context,
Duplication
Line 802
Duplicate code found (appears 2 times)
getLangReplaced(context,
Duplication
Line 572
Duplicate code found (appears 2 times)
textAlign: TextAlign.center,
Duplication
Line 599
Duplicate code found (appears 2 times)
textAlign: TextAlign.center,
Duplication
Line 574
Duplicate code found (appears 2 times)
children: [
Duplication
Line 601
Duplicate code found (appears 2 times)
children: [
Duplication
Line 578
Duplicate code found (appears 2 times)
TextStyles.defaultSmallText,
Duplication
Line 605
Duplicate code found (appears 2 times)
TextStyles.defaultSmallText,
Duplication
Line 582
Duplicate code found (appears 2 times)
.getFormattedDateTime(
Duplication
Line 609
Duplicate code found (appears 2 times)
.getFormattedDateTime(
Duplication
Line 588
Duplicate code found (appears 2 times)
color: AppColors.grey
Duplication
Line 615
Duplicate code found (appears 2 times)
color: AppColors.grey
Duplication
Line 592
Duplicate code found (appears 2 times)
fontWeight: FontWeight.bold,
Duplication
Line 619
Duplicate code found (appears 2 times)
fontWeight: FontWeight.bold,
Duplication
Line 638
Duplicate code found (appears 2 times)
height: Ui.getPadding(2),
Duplication
Line 723
Duplicate code found (appears 2 times)
height: Ui.getPadding(2),
Duplication
Line 792
Duplicate code found (appears 2 times)
color: AppColors.grey1,
Duplication
Line 832
Duplicate code found (appears 2 times)
color: AppColors.grey1,
Long Method
Line 191
Method is too long (664 lines)
Widget build(BuildContext context) {
Potential Bug
Line 93
Null check without null-aware operator (?.)
accountNumber: (_currentIndex != null)
Potential Bug
Line 98
Null check without null-aware operator (?.)
(_currentIndex != null)
Potential Bug
Line 102
Null check without null-aware operator (?.)
() => (_currentIndex != null)
Potential Bug
Line 119
Null check without null-aware operator (?.)
accountNumber: (_currentIndex != null)
Potential Bug
Line 161
Null check without null-aware operator (?.)
if (picked != null) {
Potential Bug
Line 163
Null check without null-aware operator (?.)
(_currentIndex != null)
Potential Bug
Line 549
Null check without null-aware operator (?.)
(_currentIndex != null)
Potential Bug
Line 655
Null check without null-aware operator (?.)
visible: (_currentIndex != null) &&
Potential Bug
Line 739
Null check without null-aware operator (?.)
((_currentIndex != null) &&
Potential Bug
Line 759
Null check without null-aware operator (?.)
...((_currentIndex != null)

C:\Users\PM_User\Documents\upay-mobile\lib\screens\banking\banking_screen.dart

Metric Value
Total Lines 85
Code Lines 54
Comment Lines 21
Comment Density 38.9%
Total Issues 2

Issues Found:

Long Method
Line 63
Method is too long (21 lines)
Widget build(BuildContext context) {
Dead Code
Line 21
Private method '_onAddYourSdbAccountTap' is never called
void _onAddYourSdbAccountTap() {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\banking\fixed_deposit_screen.dart

Metric Value
Total Lines 477
Code Lines 417
Comment Lines 38
Comment Density 9.1%
Total Issues 30

Issues Found:

Duplication
Line 87
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 96
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 181
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 92
Duplicate code found (appears 2 times)
width: ScreenUtil.width,
Duplication
Line 131
Duplicate code found (appears 2 times)
width: ScreenUtil.width,
Duplication
Line 93
Duplicate code found (appears 2 times)
color: AppColors.transparent,
Duplication
Line 132
Duplicate code found (appears 2 times)
color: AppColors.transparent,
Duplication
Line 98
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 339
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 106
Duplicate code found (appears 3 times)
AmountUtil.formatAmount(
Duplication
Line 263
Duplicate code found (appears 3 times)
AmountUtil.formatAmount(
Duplication
Line 376
Duplicate code found (appears 3 times)
AmountUtil.formatAmount(
Duplication
Line 111
Duplicate code found (appears 2 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 465
Duplicate code found (appears 2 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 112
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.1),
Duplication
Line 435
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.1),
Duplication
Line 113
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 162
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 119
Duplicate code found (appears 3 times)
style: TextStyles.summaryTextStyle
Duplication
Line 424
Duplicate code found (appears 3 times)
style: TextStyles.summaryTextStyle
Duplication
Line 433
Duplicate code found (appears 3 times)
style: TextStyles.summaryTextStyle
Duplication
Line 126
Duplicate code found (appears 2 times)
height: contentHeight * 0.4,
Duplication
Line 336
Duplicate code found (appears 2 times)
height: contentHeight * 0.4,
Duplication
Line 150
Duplicate code found (appears 2 times)
BuildContext context,
Duplication
Line 347
Duplicate code found (appears 2 times)
BuildContext context,
Duplication
Line 272
Duplicate code found (appears 3 times)
color: AppColors.black,
Duplication
Line 428
Duplicate code found (appears 3 times)
color: AppColors.black,
Duplication
Line 437
Duplicate code found (appears 3 times)
color: AppColors.black,
Long Method
Line 73
Method is too long (403 lines)
Widget build(BuildContext context) {
Potential Bug
Line 334
Null check without null-aware operator (?.)
_currentIndex != null

C:\Users\PM_User\Documents\upay-mobile\lib\screens\banking\loans_recent_transactions_screen.dart

Metric Value
Total Lines 699
Code Lines 627
Comment Lines 56
Comment Density 8.9%
Total Issues 33

Issues Found:

Duplication
Line 132
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 141
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 194
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 137
Duplicate code found (appears 2 times)
width: ScreenUtil.width,
Duplication
Line 223
Duplicate code found (appears 2 times)
width: ScreenUtil.width,
Duplication
Line 138
Duplicate code found (appears 2 times)
color: AppColors.transparent,
Duplication
Line 224
Duplicate code found (appears 2 times)
color: AppColors.transparent,
Duplication
Line 140
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 560
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 148
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 571
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 151
Duplicate code found (appears 2 times)
AmountUtil.formatAmount(
Duplication
Line 661
Duplicate code found (appears 2 times)
AmountUtil.formatAmount(
Duplication
Line 156
Duplicate code found (appears 2 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 566
Duplicate code found (appears 2 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 158
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 182
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 181
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 274
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 188
Duplicate code found (appears 2 times)
blurRadius: Ui.getRadius(1.1),
Duplication
Line 287
Duplicate code found (appears 2 times)
blurRadius: Ui.getRadius(1.1),
Duplication
Line 196
Duplicate code found (appears 2 times)
MainAxisAlignment.spaceBetween,
Duplication
Line 606
Duplicate code found (appears 2 times)
MainAxisAlignment.spaceBetween,
Duplication
Line 214
Duplicate code found (appears 4 times)
color: AppColors.black,
Duplication
Line 620
Duplicate code found (appears 4 times)
color: AppColors.black,
Duplication
Line 629
Duplicate code found (appears 4 times)
color: AppColors.black,
Duplication
Line 641
Duplicate code found (appears 4 times)
color: AppColors.black,
Duplication
Line 621
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w400,
Duplication
Line 630
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w400,
Long Method
Line 118
Method is too long (580 lines)
Widget build(BuildContext context) {
Potential Bug
Line 89
Null check without null-aware operator (?.)
accountNumber: (_currentIndex != null)
Potential Bug
Line 95
Null check without null-aware operator (?.)
(_currentIndex != null)
Potential Bug
Line 99
Null check without null-aware operator (?.)
() => (_currentIndex != null)

C:\Users\PM_User\Documents\upay-mobile\lib\screens\banking\loan_more_screen.dart

Metric Value
Total Lines 327
Code Lines 300
Comment Lines 1
Comment Density 0.3%
Total Issues 32

Issues Found:

Duplication
Line 49
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 57
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 74
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 78
Duplicate code found (appears 6 times)
style: TextStyles.summaryTextStyle
Duplication
Line 85
Duplicate code found (appears 6 times)
style: TextStyles.summaryTextStyle
Duplication
Line 104
Duplicate code found (appears 6 times)
style: TextStyles.summaryTextStyle
Duplication
Line 110
Duplicate code found (appears 6 times)
style: TextStyles.summaryTextStyle
Duplication
Line 287
Duplicate code found (appears 6 times)
style: TextStyles.summaryTextStyle
Duplication
Line 296
Duplicate code found (appears 6 times)
style: TextStyles.summaryTextStyle
Duplication
Line 80
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(0.9),
Duplication
Line 87
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(0.9),
Duplication
Line 99
Duplicate code found (appears 6 times)
AmountUtil.formatAmount(
Duplication
Line 165
Duplicate code found (appears 6 times)
AmountUtil.formatAmount(
Duplication
Line 196
Duplicate code found (appears 6 times)
AmountUtil.formatAmount(
Duplication
Line 212
Duplicate code found (appears 6 times)
AmountUtil.formatAmount(
Duplication
Line 229
Duplicate code found (appears 6 times)
AmountUtil.formatAmount(
Duplication
Line 247
Duplicate code found (appears 6 times)
AmountUtil.formatAmount(
Duplication
Line 163
Duplicate code found (appears 5 times)
detail = getLangReplaced(
Duplication
Line 194
Duplicate code found (appears 5 times)
detail = getLangReplaced(
Duplication
Line 210
Duplicate code found (appears 5 times)
detail = getLangReplaced(
Duplication
Line 227
Duplicate code found (appears 5 times)
detail = getLangReplaced(
Duplication
Line 245
Duplicate code found (appears 5 times)
detail = getLangReplaced(
Duplication
Line 164
Duplicate code found (appears 5 times)
context, "rs_replace", [
Duplication
Line 195
Duplicate code found (appears 5 times)
context, "rs_replace", [
Duplication
Line 211
Duplicate code found (appears 5 times)
context, "rs_replace", [
Duplication
Line 228
Duplicate code found (appears 5 times)
context, "rs_replace", [
Duplication
Line 246
Duplicate code found (appears 5 times)
context, "rs_replace", [
Duplication
Line 197
Duplicate code found (appears 2 times)
loanDetails.installmentAmount ??
Duplication
Line 213
Duplicate code found (appears 2 times)
loanDetails.installmentAmount ??
Duplication
Line 291
Duplicate code found (appears 2 times)
color: AppColors.black,
Duplication
Line 300
Duplicate code found (appears 2 times)
color: AppColors.black,
Long Method
Line 30
Method is too long (296 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\bill_pay\bill_pay_failed_screen.dart

Metric Value
Total Lines 211
Code Lines 124
Comment Lines 81
Comment Density 65.3%
Total Issues 6

Issues Found:

Duplication
Line 94
Duplicate code found (appears 2 times)
style: TextStyles.defaultSmallText,
Duplication
Line 98
Duplicate code found (appears 2 times)
style: TextStyles.defaultSmallText,
Duplication
Line 104
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(0.5)),
Duplication
Line 123
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(0.5)),
Long Method
Line 38
Method is too long (172 lines)
Widget build(BuildContext context) {
Potential Bug
Line 150
Null check without null-aware operator (?.)
// if (widget.detail.transactionId != null)

C:\Users\PM_User\Documents\upay-mobile\lib\screens\bill_pay\bill_pay_screen.dart

Metric Value
Total Lines 177
Code Lines 161
Comment Lines 3
Comment Density 1.9%
Total Issues 26

Issues Found:

Duplication
Line 49
Duplicate code found (appears 3 times)
if (_billerScreenCurrentViewNotifier.value ==
Duplication
Line 56
Duplicate code found (appears 3 times)
if (_billerScreenCurrentViewNotifier.value ==
Duplication
Line 69
Duplicate code found (appears 3 times)
if (_billerScreenCurrentViewNotifier.value ==
Duplication
Line 53
Duplicate code found (appears 2 times)
if (widget.trafficFinesModel != null) {
Duplication
Line 90
Duplicate code found (appears 2 times)
if (widget.trafficFinesModel != null) {
Duplication
Line 126
Duplicate code found (appears 3 times)
progressNotifier: _progressNotifier,
Duplication
Line 136
Duplicate code found (appears 3 times)
progressNotifier: _progressNotifier,
Duplication
Line 151
Duplicate code found (appears 3 times)
progressNotifier: _progressNotifier,
Duplication
Line 137
Duplicate code found (appears 2 times)
isMyPayees: widget.isMyPayees,
Duplication
Line 152
Duplicate code found (appears 2 times)
isMyPayees: widget.isMyPayees,
Duplication
Line 138
Duplicate code found (appears 2 times)
selectedBiller: widget.biller,
Duplication
Line 153
Duplicate code found (appears 2 times)
selectedBiller: widget.biller,
Duplication
Line 139
Duplicate code found (appears 2 times)
billerCategoryFromSideBar: widget.billerCategoryFromSideBar,
Duplication
Line 154
Duplicate code found (appears 2 times)
billerCategoryFromSideBar: widget.billerCategoryFromSideBar,
Duplication
Line 140
Duplicate code found (appears 2 times)
billerScreenViewNotifier: _billerScreenCurrentViewNotifier,
Duplication
Line 155
Duplicate code found (appears 2 times)
billerScreenViewNotifier: _billerScreenCurrentViewNotifier,
Duplication
Line 141
Duplicate code found (appears 2 times)
onScreenChange: onScreenChange,
Duplication
Line 156
Duplicate code found (appears 2 times)
onScreenChange: onScreenChange,
Duplication
Line 142
Duplicate code found (appears 2 times)
trafficFinesModel: widget.trafficFinesModel,
Duplication
Line 157
Duplicate code found (appears 2 times)
trafficFinesModel: widget.trafficFinesModel,
Long Method
Line 119
Method is too long (43 lines)
Widget build(BuildContext context) {
Dead Code
Line 45
Private method '_onBackPress' is never called
void _onBackPress() {
Potential Bug
Line 53
Null check without null-aware operator (?.)
if (widget.trafficFinesModel != null) {
Potential Bug
Line 90
Null check without null-aware operator (?.)
if (widget.trafficFinesModel != null) {
Potential Bug
Line 121
Null check without null-aware operator (?.)
title: widget.trafficFinesModel != null
Potential Bug
Line 149
Null check without null-aware operator (?.)
visible: widget.trafficFinesModel != null,

C:\Users\PM_User\Documents\upay-mobile\lib\screens\bill_pay\bill_pay_success_screen.dart

Metric Value
Total Lines 284
Code Lines 262
Comment Lines 11
Comment Density 4.2%
Total Issues 14

Issues Found:

Duplication
Line 67
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 77
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 86
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(3)),
Duplication
Line 225
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(3)),
Duplication
Line 112
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 209
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 124
Duplicate code found (appears 3 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 130
Duplicate code found (appears 3 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 149
Duplicate code found (appears 3 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 125
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.1),
Duplication
Line 131
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.1),
Duplication
Line 137
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(0.5)),
Duplication
Line 156
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(0.5)),
Long Method
Line 57
Method is too long (140 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\bill_pay\single_pay_view.dart

Metric Value
Total Lines 2565
Code Lines 2182
Comment Lines 242
Comment Density 11.1%
Total Issues 635

Issues Found:

Duplication
Line 105
Duplicate code found (appears 2 times)
(code) => RegExp(r"(\d{6})").stringMatch(code ?? "") ?? "",
Duplication
Line 1901
Duplicate code found (appears 2 times)
(code) => RegExp(r"(\d{6})").stringMatch(code ?? "") ?? "",
Duplication
Line 107
Duplicate code found (appears 2 times)
senderNumber: Env.otpSenderName,
Duplication
Line 1903
Duplicate code found (appears 2 times)
senderNumber: Env.otpSenderName,
Duplication
Line 143
Duplicate code found (appears 2 times)
WidgetsBinding.instance.addPostFrameCallback((_) {
Duplication
Line 246
Duplicate code found (appears 2 times)
WidgetsBinding.instance.addPostFrameCallback((_) {
Duplication
Line 146
Duplicate code found (appears 2 times)
_selectedBillerNotifier.value = widget.selectedBiller;
Duplication
Line 156
Duplicate code found (appears 2 times)
_selectedBillerNotifier.value = widget.selectedBiller;
Duplication
Line 147
Duplicate code found (appears 2 times)
_selectedBiller = widget.selectedBiller;
Duplication
Line 157
Duplicate code found (appears 2 times)
_selectedBiller = widget.selectedBiller;
Duplication
Line 148
Duplicate code found (appears 2 times)
_bpDto.biller = widget.selectedBiller;
Duplication
Line 158
Duplicate code found (appears 2 times)
_bpDto.biller = widget.selectedBiller;
Duplication
Line 149
Duplicate code found (appears 10 times)
widget.billerScreenViewNotifier?.value =
Duplication
Line 160
Duplicate code found (appears 10 times)
widget.billerScreenViewNotifier?.value =
Duplication
Line 217
Duplicate code found (appears 10 times)
widget.billerScreenViewNotifier?.value =
Duplication
Line 253
Duplicate code found (appears 10 times)
widget.billerScreenViewNotifier?.value =
Duplication
Line 632
Duplicate code found (appears 10 times)
widget.billerScreenViewNotifier?.value =
Duplication
Line 638
Duplicate code found (appears 10 times)
widget.billerScreenViewNotifier?.value =
Duplication
Line 643
Duplicate code found (appears 10 times)
widget.billerScreenViewNotifier?.value =
Duplication
Line 655
Duplicate code found (appears 10 times)
widget.billerScreenViewNotifier?.value =
Duplication
Line 1349
Duplicate code found (appears 10 times)
widget.billerScreenViewNotifier?.value =
Duplication
Line 1366
Duplicate code found (appears 10 times)
widget.billerScreenViewNotifier?.value =
Duplication
Line 150
Duplicate code found (appears 6 times)
BillPayScreensView.billerDetailsFees;
Duplication
Line 218
Duplicate code found (appears 6 times)
BillPayScreensView.billerDetailsFees;
Duplication
Line 254
Duplicate code found (appears 6 times)
BillPayScreensView.billerDetailsFees;
Duplication
Line 633
Duplicate code found (appears 6 times)
BillPayScreensView.billerDetailsFees;
Duplication
Line 1350
Duplicate code found (appears 6 times)
BillPayScreensView.billerDetailsFees;
Duplication
Line 1367
Duplicate code found (appears 6 times)
BillPayScreensView.billerDetailsFees;
Duplication
Line 151
Duplicate code found (appears 3 times)
widget.onScreenChange
Duplication
Line 162
Duplicate code found (appears 3 times)
widget.onScreenChange
Duplication
Line 657
Duplicate code found (appears 3 times)
widget.onScreenChange
Duplication
Line 152
Duplicate code found (appears 3 times)
?.call(_selectedBillerNotifier, _billerFeeNotifier);
Duplication
Line 163
Duplicate code found (appears 3 times)
?.call(_selectedBillerNotifier, _billerFeeNotifier);
Duplication
Line 658
Duplicate code found (appears 3 times)
?.call(_selectedBillerNotifier, _billerFeeNotifier);
Duplication
Line 161
Duplicate code found (appears 3 times)
BillPayScreensView.enterBillerDetails;
Duplication
Line 639
Duplicate code found (appears 3 times)
BillPayScreensView.enterBillerDetails;
Duplication
Line 656
Duplicate code found (appears 3 times)
BillPayScreensView.enterBillerDetails;
Duplication
Line 175
Duplicate code found (appears 2 times)
.add(widget.billerFieldData ?? {});
Duplication
Line 1568
Duplicate code found (appears 2 times)
.add(widget.billerFieldData ?? {});
Duplication
Line 177
Duplicate code found (appears 4 times)
if (widget.trafficFinesModel != null) {
Duplication
Line 257
Duplicate code found (appears 4 times)
if (widget.trafficFinesModel != null) {
Duplication
Line 1325
Duplicate code found (appears 4 times)
if (widget.trafficFinesModel != null) {
Duplication
Line 1451
Duplicate code found (appears 4 times)
if (widget.trafficFinesModel != null) {
Duplication
Line 188
Duplicate code found (appears 2 times)
final trafficFinesBiller = Biller(
Duplication
Line 226
Duplicate code found (appears 2 times)
final trafficFinesBiller = Biller(
Duplication
Line 190
Duplicate code found (appears 2 times)
name: "Traffic Fines",
Duplication
Line 228
Duplicate code found (appears 2 times)
name: "Traffic Fines",
Duplication
Line 197
Duplicate code found (appears 2 times)
_amountController.text = amount.toString();
Duplication
Line 236
Duplicate code found (appears 2 times)
_amountController.text = amount.toString();
Duplication
Line 200
Duplicate code found (appears 2 times)
biller: trafficFinesBiller,
Duplication
Line 238
Duplicate code found (appears 2 times)
biller: trafficFinesBiller,
Duplication
Line 206
Duplicate code found (appears 3 times)
_selectedBillerNotifier.value = trafficFinesBiller;
Duplication
Line 244
Duplicate code found (appears 3 times)
_selectedBillerNotifier.value = trafficFinesBiller;
Duplication
Line 251
Duplicate code found (appears 3 times)
_selectedBillerNotifier.value = trafficFinesBiller;
Duplication
Line 237
Duplicate code found (appears 2 times)
final billerFee = BillerFee(
Duplication
Line 1327
Duplicate code found (appears 2 times)
final billerFee = BillerFee(
Duplication
Line 252
Duplicate code found (appears 2 times)
_billerFeeNotifier.value = billerFee;
Duplication
Line 1334
Duplicate code found (appears 2 times)
_billerFeeNotifier.value = billerFee;
Duplication
Line 277
Duplicate code found (appears 2 times)
valueListenable: _billerFeeNotifier,
Duplication
Line 1029
Duplicate code found (appears 2 times)
valueListenable: _billerFeeNotifier,
Duplication
Line 291
Duplicate code found (appears 4 times)
padding: EdgeInsets.only(
Duplication
Line 1976
Duplicate code found (appears 4 times)
padding: EdgeInsets.only(
Duplication
Line 1999
Duplicate code found (appears 4 times)
padding: EdgeInsets.only(
Duplication
Line 2305
Duplicate code found (appears 4 times)
padding: EdgeInsets.only(
Duplication
Line 292
Duplicate code found (appears 3 times)
top: Ui.getPadding(2),
Duplication
Line 1977
Duplicate code found (appears 3 times)
top: Ui.getPadding(2),
Duplication
Line 2306
Duplicate code found (appears 3 times)
top: Ui.getPadding(2),
Duplication
Line 293
Duplicate code found (appears 3 times)
bottom: Ui.getPadding(2),
Duplication
Line 1978
Duplicate code found (appears 3 times)
bottom: Ui.getPadding(2),
Duplication
Line 2307
Duplicate code found (appears 3 times)
bottom: Ui.getPadding(2),
Duplication
Line 294
Duplicate code found (appears 4 times)
left: Ui.getPadding(2),
Duplication
Line 1979
Duplicate code found (appears 4 times)
left: Ui.getPadding(2),
Duplication
Line 2000
Duplicate code found (appears 4 times)
left: Ui.getPadding(2),
Duplication
Line 2308
Duplicate code found (appears 4 times)
left: Ui.getPadding(2),
Duplication
Line 295
Duplicate code found (appears 4 times)
right: Ui.getPadding(2),
Duplication
Line 1980
Duplicate code found (appears 4 times)
right: Ui.getPadding(2),
Duplication
Line 2001
Duplicate code found (appears 4 times)
right: Ui.getPadding(2),
Duplication
Line 2309
Duplicate code found (appears 4 times)
right: Ui.getPadding(2),
Duplication
Line 301
Duplicate code found (appears 10 times)
decoration: BoxDecoration(
Duplication
Line 574
Duplicate code found (appears 10 times)
decoration: BoxDecoration(
Duplication
Line 703
Duplicate code found (appears 10 times)
decoration: BoxDecoration(
Duplication
Line 717
Duplicate code found (appears 10 times)
decoration: BoxDecoration(
Duplication
Line 907
Duplicate code found (appears 10 times)
decoration: BoxDecoration(
Duplication
Line 1824
Duplicate code found (appears 10 times)
decoration: BoxDecoration(
Duplication
Line 1986
Duplicate code found (appears 10 times)
decoration: BoxDecoration(
Duplication
Line 2251
Duplicate code found (appears 10 times)
decoration: BoxDecoration(
Duplication
Line 2314
Duplicate code found (appears 10 times)
decoration: BoxDecoration(
Duplication
Line 2491
Duplicate code found (appears 10 times)
decoration: BoxDecoration(
Duplication
Line 303
Duplicate code found (appears 3 times)
borderRadius: BorderRadius.circular(10),
Duplication
Line 1988
Duplicate code found (appears 3 times)
borderRadius: BorderRadius.circular(10),
Duplication
Line 2316
Duplicate code found (appears 3 times)
borderRadius: BorderRadius.circular(10),
Duplication
Line 306
Duplicate code found (appears 4 times)
color: AppColors.grey,
Duplication
Line 1991
Duplicate code found (appears 4 times)
color: AppColors.grey,
Duplication
Line 2319
Duplicate code found (appears 4 times)
color: AppColors.grey,
Duplication
Line 2526
Duplicate code found (appears 4 times)
color: AppColors.grey,
Duplication
Line 307
Duplicate code found (appears 5 times)
offset: const Offset(0, 1),
Duplication
Line 1992
Duplicate code found (appears 5 times)
offset: const Offset(0, 1),
Duplication
Line 2320
Duplicate code found (appears 5 times)
offset: const Offset(0, 1),
Duplication
Line 2497
Duplicate code found (appears 5 times)
offset: const Offset(0, 1),
Duplication
Line 2502
Duplicate code found (appears 5 times)
offset: const Offset(0, 1),
Duplication
Line 315
Duplicate code found (appears 10 times)
const ColumnSpacer(2),
Duplication
Line 366
Duplicate code found (appears 10 times)
const ColumnSpacer(2),
Duplication
Line 394
Duplicate code found (appears 10 times)
const ColumnSpacer(2),
Duplication
Line 2005
Duplicate code found (appears 10 times)
const ColumnSpacer(2),
Duplication
Line 2048
Duplicate code found (appears 10 times)
const ColumnSpacer(2),
Duplication
Line 2067
Duplicate code found (appears 10 times)
const ColumnSpacer(2),
Duplication
Line 2085
Duplicate code found (appears 10 times)
const ColumnSpacer(2),
Duplication
Line 2328
Duplicate code found (appears 10 times)
const ColumnSpacer(2),
Duplication
Line 2372
Duplicate code found (appears 10 times)
const ColumnSpacer(2),
Duplication
Line 2394
Duplicate code found (appears 10 times)
const ColumnSpacer(2),
Duplication
Line 317
Duplicate code found (appears 2 times)
getLangStr(context, "traffic_fines")
Duplication
Line 2007
Duplicate code found (appears 2 times)
getLangStr(context, "traffic_fines")
Duplication
Line 319
Duplicate code found (appears 13 times)
style: TextStyles.semiBold.copyWith(
Duplication
Line 2009
Duplicate code found (appears 13 times)
style: TextStyles.semiBold.copyWith(
Duplication
Line 2042
Duplicate code found (appears 13 times)
style: TextStyles.semiBold.copyWith(
Duplication
Line 2061
Duplicate code found (appears 13 times)
style: TextStyles.semiBold.copyWith(
Duplication
Line 2079
Duplicate code found (appears 13 times)
style: TextStyles.semiBold.copyWith(
Duplication
Line 2097
Duplicate code found (appears 13 times)
style: TextStyles.semiBold.copyWith(
Duplication
Line 2331
Duplicate code found (appears 13 times)
style: TextStyles.semiBold.copyWith(
Duplication
Line 2355
Duplicate code found (appears 13 times)
style: TextStyles.semiBold.copyWith(
Duplication
Line 2364
Duplicate code found (appears 13 times)
style: TextStyles.semiBold.copyWith(
Duplication
Line 2378
Duplicate code found (appears 13 times)
style: TextStyles.semiBold.copyWith(
Duplication
Line 2386
Duplicate code found (appears 13 times)
style: TextStyles.semiBold.copyWith(
Duplication
Line 2403
Duplicate code found (appears 13 times)
style: TextStyles.semiBold.copyWith(
Duplication
Line 2411
Duplicate code found (appears 13 times)
style: TextStyles.semiBold.copyWith(
Duplication
Line 320
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 348
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 359
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 376
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 387
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 406
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 415
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 576
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 747
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 909
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 2010
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 2043
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 2062
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 2080
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 2098
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 2253
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 2332
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 2356
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 2365
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 2379
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 2387
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 2404
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 2412
Duplicate code found (appears 23 times)
color: AppColors.black,
Duplication
Line 321
Duplicate code found (appears 3 times)
fontSize: Ui.getFontSize(1.6),
Duplication
Line 2011
Duplicate code found (appears 3 times)
fontSize: Ui.getFontSize(1.6),
Duplication
Line 2333
Duplicate code found (appears 3 times)
fontSize: Ui.getFontSize(1.6),
Duplication
Line 322
Duplicate code found (appears 18 times)
fontWeight: FontWeight.bold,
Duplication
Line 350
Duplicate code found (appears 18 times)
fontWeight: FontWeight.bold,
Duplication
Line 378
Duplicate code found (appears 18 times)
fontWeight: FontWeight.bold,
Duplication
Line 389
Duplicate code found (appears 18 times)
fontWeight: FontWeight.bold,
Duplication
Line 408
Duplicate code found (appears 18 times)
fontWeight: FontWeight.bold,
Duplication
Line 417
Duplicate code found (appears 18 times)
fontWeight: FontWeight.bold,
Duplication
Line 749
Duplicate code found (appears 18 times)
fontWeight: FontWeight.bold,
Duplication
Line 2012
Duplicate code found (appears 18 times)
fontWeight: FontWeight.bold,
Duplication
Line 2045
Duplicate code found (appears 18 times)
fontWeight: FontWeight.bold,
Duplication
Line 2064
Duplicate code found (appears 18 times)
fontWeight: FontWeight.bold,
Duplication
Line 2082
Duplicate code found (appears 18 times)
fontWeight: FontWeight.bold,
Duplication
Line 2100
Duplicate code found (appears 18 times)
fontWeight: FontWeight.bold,
Duplication
Line 2334
Duplicate code found (appears 18 times)
fontWeight: FontWeight.bold,
Duplication
Line 2358
Duplicate code found (appears 18 times)
fontWeight: FontWeight.bold,
Duplication
Line 2381
Duplicate code found (appears 18 times)
fontWeight: FontWeight.bold,
Duplication
Line 2389
Duplicate code found (appears 18 times)
fontWeight: FontWeight.bold,
Duplication
Line 2406
Duplicate code found (appears 18 times)
fontWeight: FontWeight.bold,
Duplication
Line 2414
Duplicate code found (appears 18 times)
fontWeight: FontWeight.bold,
Duplication
Line 328
Duplicate code found (appears 3 times)
AppIcons.trafficFines,
Duplication
Line 2019
Duplicate code found (appears 3 times)
AppIcons.trafficFines,
Duplication
Line 2340
Duplicate code found (appears 3 times)
AppIcons.trafficFines,
Duplication
Line 329
Duplicate code found (appears 3 times)
width: Ui.getPadding(10),
Duplication
Line 2020
Duplicate code found (appears 3 times)
width: Ui.getPadding(10),
Duplication
Line 2341
Duplicate code found (appears 3 times)
width: Ui.getPadding(10),
Duplication
Line 330
Duplicate code found (appears 3 times)
height: Ui.getPadding(10),
Duplication
Line 2021
Duplicate code found (appears 3 times)
height: Ui.getPadding(10),
Duplication
Line 2342
Duplicate code found (appears 3 times)
height: Ui.getPadding(10),
Duplication
Line 336
Duplicate code found (appears 5 times)
CrossAxisAlignment.start,
Duplication
Line 341
Duplicate code found (appears 5 times)
CrossAxisAlignment.start,
Duplication
Line 369
Duplicate code found (appears 5 times)
CrossAxisAlignment.start,
Duplication
Line 397
Duplicate code found (appears 5 times)
CrossAxisAlignment.start,
Duplication
Line 2028
Duplicate code found (appears 5 times)
CrossAxisAlignment.start,
Duplication
Line 338
Duplicate code found (appears 9 times)
const ColumnSpacer(3),
Duplication
Line 422
Duplicate code found (appears 9 times)
const ColumnSpacer(3),
Duplication
Line 430
Duplicate code found (appears 9 times)
const ColumnSpacer(3),
Duplication
Line 2030
Duplicate code found (appears 9 times)
const ColumnSpacer(3),
Duplication
Line 2103
Duplicate code found (appears 9 times)
const ColumnSpacer(3),
Duplication
Line 2113
Duplicate code found (appears 9 times)
const ColumnSpacer(3),
Duplication
Line 2349
Duplicate code found (appears 9 times)
const ColumnSpacer(3),
Duplication
Line 2419
Duplicate code found (appears 9 times)
const ColumnSpacer(3),
Duplication
Line 2427
Duplicate code found (appears 9 times)
const ColumnSpacer(3),
Duplication
Line 346
Duplicate code found (appears 6 times)
style: TextStyles.semiBold
Duplication
Line 357
Duplicate code found (appears 6 times)
style: TextStyles.semiBold
Duplication
Line 374
Duplicate code found (appears 6 times)
style: TextStyles.semiBold
Duplication
Line 385
Duplicate code found (appears 6 times)
style: TextStyles.semiBold
Duplication
Line 404
Duplicate code found (appears 6 times)
style: TextStyles.semiBold
Duplication
Line 413
Duplicate code found (appears 6 times)
style: TextStyles.semiBold
Duplication
Line 349
Duplicate code found (appears 12 times)
fontSize: Ui.getFontSize(1.2),
Duplication
Line 360
Duplicate code found (appears 12 times)
fontSize: Ui.getFontSize(1.2),
Duplication
Line 377
Duplicate code found (appears 12 times)
fontSize: Ui.getFontSize(1.2),
Duplication
Line 388
Duplicate code found (appears 12 times)
fontSize: Ui.getFontSize(1.2),
Duplication
Line 407
Duplicate code found (appears 12 times)
fontSize: Ui.getFontSize(1.2),
Duplication
Line 416
Duplicate code found (appears 12 times)
fontSize: Ui.getFontSize(1.2),
Duplication
Line 2357
Duplicate code found (appears 12 times)
fontSize: Ui.getFontSize(1.2),
Duplication
Line 2366
Duplicate code found (appears 12 times)
fontSize: Ui.getFontSize(1.2),
Duplication
Line 2380
Duplicate code found (appears 12 times)
fontSize: Ui.getFontSize(1.2),
Duplication
Line 2388
Duplicate code found (appears 12 times)
fontSize: Ui.getFontSize(1.2),
Duplication
Line 2405
Duplicate code found (appears 12 times)
fontSize: Ui.getFontSize(1.2),
Duplication
Line 2413
Duplicate code found (appears 12 times)
fontSize: Ui.getFontSize(1.2),
Duplication
Line 354
Duplicate code found (appears 6 times)
widget.trafficFinesModel
Duplication
Line 382
Duplicate code found (appears 6 times)
widget.trafficFinesModel
Duplication
Line 2036
Duplicate code found (appears 6 times)
widget.trafficFinesModel
Duplication
Line 2054
Duplicate code found (appears 6 times)
widget.trafficFinesModel
Duplication
Line 2073
Duplicate code found (appears 6 times)
widget.trafficFinesModel
Duplication
Line 2091
Duplicate code found (appears 6 times)
widget.trafficFinesModel
Duplication
Line 355
Duplicate code found (appears 2 times)
?.drivingLicenseNumber ??
Duplication
Line 2037
Duplicate code found (appears 2 times)
?.drivingLicenseNumber ??
Duplication
Line 361
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w600,
Duplication
Line 2367
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w600,
Duplication
Line 383
Duplicate code found (appears 2 times)
?.policeStationName ??
Duplication
Line 2055
Duplicate code found (appears 2 times)
?.policeStationName ??
Duplication
Line 402
Duplicate code found (appears 3 times)
"fines_sheet_number",
Duplication
Line 2071
Duplicate code found (appears 3 times)
"fines_sheet_number",
Duplication
Line 2401
Duplicate code found (appears 3 times)
"fines_sheet_number",
Duplication
Line 412
Duplicate code found (appears 2 times)
" : ${widget.trafficFinesModel?.fineSheetNumber ?? ""}",
Duplication
Line 2410
Duplicate code found (appears 2 times)
" : ${widget.trafficFinesModel?.fineSheetNumber ?? ""}",
Duplication
Line 432
Duplicate code found (appears 12 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 445
Duplicate code found (appears 12 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 462
Duplicate code found (appears 12 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 772
Duplicate code found (appears 12 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 784
Duplicate code found (appears 12 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 798
Duplicate code found (appears 12 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 2115
Duplicate code found (appears 12 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 2128
Duplicate code found (appears 12 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 2142
Duplicate code found (appears 12 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 2429
Duplicate code found (appears 12 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 2441
Duplicate code found (appears 12 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 2455
Duplicate code found (appears 12 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 434
Duplicate code found (appears 4 times)
Text(getLangStr(context, "amount")),
Duplication
Line 774
Duplicate code found (appears 4 times)
Text(getLangStr(context, "amount")),
Duplication
Line 2117
Duplicate code found (appears 4 times)
Text(getLangStr(context, "amount")),
Duplication
Line 2431
Duplicate code found (appears 4 times)
Text(getLangStr(context, "amount")),
Duplication
Line 436
Duplicate code found (appears 8 times)
getLangReplaced(context, "lkr_replace", [
Duplication
Line 466
Duplicate code found (appears 8 times)
getLangReplaced(context, "lkr_replace", [
Duplication
Line 776
Duplicate code found (appears 8 times)
getLangReplaced(context, "lkr_replace", [
Duplication
Line 802
Duplicate code found (appears 8 times)
getLangReplaced(context, "lkr_replace", [
Duplication
Line 2119
Duplicate code found (appears 8 times)
getLangReplaced(context, "lkr_replace", [
Duplication
Line 2146
Duplicate code found (appears 8 times)
getLangReplaced(context, "lkr_replace", [
Duplication
Line 2433
Duplicate code found (appears 8 times)
getLangReplaced(context, "lkr_replace", [
Duplication
Line 2459
Duplicate code found (appears 8 times)
getLangReplaced(context, "lkr_replace", [
Duplication
Line 437
Duplicate code found (appears 4 times)
AmountUtil.formatAmount(
Duplication
Line 453
Duplicate code found (appears 4 times)
AmountUtil.formatAmount(
Duplication
Line 467
Duplicate code found (appears 4 times)
AmountUtil.formatAmount(
Duplication
Line 2120
Duplicate code found (appears 4 times)
AmountUtil.formatAmount(
Duplication
Line 438
Duplicate code found (appears 2 times)
billerFee.amount.toString()),
Duplication
Line 2121
Duplicate code found (appears 2 times)
billerFee.amount.toString()),
Duplication
Line 443
Duplicate code found (appears 8 times)
Divider(height: Ui.getPadding(4)),
Duplication
Line 460
Duplicate code found (appears 8 times)
Divider(height: Ui.getPadding(4)),
Duplication
Line 782
Duplicate code found (appears 8 times)
Divider(height: Ui.getPadding(4)),
Duplication
Line 796
Duplicate code found (appears 8 times)
Divider(height: Ui.getPadding(4)),
Duplication
Line 2126
Duplicate code found (appears 8 times)
Divider(height: Ui.getPadding(4)),
Duplication
Line 2140
Duplicate code found (appears 8 times)
Divider(height: Ui.getPadding(4)),
Duplication
Line 2439
Duplicate code found (appears 8 times)
Divider(height: Ui.getPadding(4)),
Duplication
Line 2453
Duplicate code found (appears 8 times)
Divider(height: Ui.getPadding(4)),
Duplication
Line 447
Duplicate code found (appears 4 times)
Text(getLangStr(context, "other_charges")),
Duplication
Line 786
Duplicate code found (appears 4 times)
Text(getLangStr(context, "other_charges")),
Duplication
Line 2130
Duplicate code found (appears 4 times)
Text(getLangStr(context, "other_charges")),
Duplication
Line 2443
Duplicate code found (appears 4 times)
Text(getLangStr(context, "other_charges")),
Duplication
Line 464
Duplicate code found (appears 4 times)
Text(getLangStr(context, "total_amount")),
Duplication
Line 800
Duplicate code found (appears 4 times)
Text(getLangStr(context, "total_amount")),
Duplication
Line 2144
Duplicate code found (appears 4 times)
Text(getLangStr(context, "total_amount")),
Duplication
Line 2457
Duplicate code found (appears 4 times)
Text(getLangStr(context, "total_amount")),
Duplication
Line 473
Duplicate code found (appears 7 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 700
Duplicate code found (appears 7 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 808
Duplicate code found (appears 7 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 1143
Duplicate code found (appears 7 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 1183
Duplicate code found (appears 7 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 2152
Duplicate code found (appears 7 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 2465
Duplicate code found (appears 7 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 479
Duplicate code found (appears 7 times)
padding: EdgeInsets.symmetric(
Duplication
Line 569
Duplicate code found (appears 7 times)
padding: EdgeInsets.symmetric(
Duplication
Line 815
Duplicate code found (appears 7 times)
padding: EdgeInsets.symmetric(
Duplication
Line 902
Duplicate code found (appears 7 times)
padding: EdgeInsets.symmetric(
Duplication
Line 1816
Duplicate code found (appears 7 times)
padding: EdgeInsets.symmetric(
Duplication
Line 2159
Duplicate code found (appears 7 times)
padding: EdgeInsets.symmetric(
Duplication
Line 2246
Duplicate code found (appears 7 times)
padding: EdgeInsets.symmetric(
Duplication
Line 480
Duplicate code found (appears 5 times)
horizontal: Ui.getPadding(2),
Duplication
Line 816
Duplicate code found (appears 5 times)
horizontal: Ui.getPadding(2),
Duplication
Line 1817
Duplicate code found (appears 5 times)
horizontal: Ui.getPadding(2),
Duplication
Line 1821
Duplicate code found (appears 5 times)
horizontal: Ui.getPadding(2),
Duplication
Line 2160
Duplicate code found (appears 5 times)
horizontal: Ui.getPadding(2),
Duplication
Line 481
Duplicate code found (appears 4 times)
vertical: Ui.getPadding(1),
Duplication
Line 817
Duplicate code found (appears 4 times)
vertical: Ui.getPadding(1),
Duplication
Line 1822
Duplicate code found (appears 4 times)
vertical: Ui.getPadding(1),
Duplication
Line 2161
Duplicate code found (appears 4 times)
vertical: Ui.getPadding(1),
Duplication
Line 484
Duplicate code found (appears 6 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 683
Duplicate code found (appears 6 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 740
Duplicate code found (appears 6 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 820
Duplicate code found (appears 6 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 1134
Duplicate code found (appears 6 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 2164
Duplicate code found (appears 6 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 487
Duplicate code found (appears 3 times)
alignment: Alignment.centerRight,
Duplication
Line 823
Duplicate code found (appears 3 times)
alignment: Alignment.centerRight,
Duplication
Line 2167
Duplicate code found (appears 3 times)
alignment: Alignment.centerRight,
Duplication
Line 488
Duplicate code found (appears 3 times)
child: _isUpayDetailsAvailable
Duplication
Line 824
Duplicate code found (appears 3 times)
child: _isUpayDetailsAvailable
Duplication
Line 2168
Duplicate code found (appears 3 times)
child: _isUpayDetailsAvailable
Duplication
Line 489
Duplicate code found (appears 3 times)
? UpayExpressDetailCard(
Duplication
Line 825
Duplicate code found (appears 3 times)
? UpayExpressDetailCard(
Duplication
Line 2169
Duplicate code found (appears 3 times)
? UpayExpressDetailCard(
Duplication
Line 490
Duplicate code found (appears 3 times)
onCloseButtonTap: _onCloseButtonTap,
Duplication
Line 826
Duplicate code found (appears 3 times)
onCloseButtonTap: _onCloseButtonTap,
Duplication
Line 2170
Duplicate code found (appears 3 times)
onCloseButtonTap: _onCloseButtonTap,
Duplication
Line 493
Duplicate code found (appears 3 times)
mainAxisAlignment: MainAxisAlignment.end,
Duplication
Line 829
Duplicate code found (appears 3 times)
mainAxisAlignment: MainAxisAlignment.end,
Duplication
Line 2173
Duplicate code found (appears 3 times)
mainAxisAlignment: MainAxisAlignment.end,
Duplication
Line 522
Duplicate code found (appears 3 times)
onTap: _onWhatIsUpayExpressTap,
Duplication
Line 858
Duplicate code found (appears 3 times)
onTap: _onWhatIsUpayExpressTap,
Duplication
Line 2202
Duplicate code found (appears 3 times)
onTap: _onWhatIsUpayExpressTap,
Duplication
Line 526
Duplicate code found (appears 3 times)
"What is UPay Express? ",
Duplication
Line 862
Duplicate code found (appears 3 times)
"What is UPay Express? ",
Duplication
Line 2206
Duplicate code found (appears 3 times)
"What is UPay Express? ",
Duplication
Line 529
Duplicate code found (appears 4 times)
color: AppColors.black2,
Duplication
Line 760
Duplicate code found (appears 4 times)
color: AppColors.black2,
Duplication
Line 864
Duplicate code found (appears 4 times)
color: AppColors.black2,
Duplication
Line 2208
Duplicate code found (appears 4 times)
color: AppColors.black2,
Duplication
Line 534
Duplicate code found (appears 3 times)
fontSize: Ui.getFontSize(0.7),
Duplication
Line 867
Duplicate code found (appears 3 times)
fontSize: Ui.getFontSize(0.7),
Duplication
Line 2211
Duplicate code found (appears 3 times)
fontSize: Ui.getFontSize(0.7),
Duplication
Line 539
Duplicate code found (appears 3 times)
size: Ui.getPadding(2.2),
Duplication
Line 872
Duplicate code found (appears 3 times)
size: Ui.getPadding(2.2),
Duplication
Line 2216
Duplicate code found (appears 3 times)
size: Ui.getPadding(2.2),
Duplication
Line 540
Duplicate code found (appears 3 times)
color: AppColors.grey1,
Duplication
Line 873
Duplicate code found (appears 3 times)
color: AppColors.grey1,
Duplication
Line 2217
Duplicate code found (appears 3 times)
color: AppColors.grey1,
Duplication
Line 548
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 881
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 2225
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 563
Duplicate code found (appears 3 times)
onTap: () => _onPayWithUpayExpressTap(billerFee),
Duplication
Line 896
Duplicate code found (appears 3 times)
onTap: () => _onPayWithUpayExpressTap(billerFee),
Duplication
Line 2240
Duplicate code found (appears 3 times)
onTap: () => _onPayWithUpayExpressTap(billerFee),
Duplication
Line 565
Duplicate code found (appears 3 times)
clipBehavior: Clip.hardEdge,
Duplication
Line 898
Duplicate code found (appears 3 times)
clipBehavior: Clip.hardEdge,
Duplication
Line 2242
Duplicate code found (appears 3 times)
clipBehavior: Clip.hardEdge,
Duplication
Line 566
Duplicate code found (appears 6 times)
borderRadius: BorderRadius.circular(6.0),
Duplication
Line 575
Duplicate code found (appears 6 times)
borderRadius: BorderRadius.circular(6.0),
Duplication
Line 899
Duplicate code found (appears 6 times)
borderRadius: BorderRadius.circular(6.0),
Duplication
Line 908
Duplicate code found (appears 6 times)
borderRadius: BorderRadius.circular(6.0),
Duplication
Line 2243
Duplicate code found (appears 6 times)
borderRadius: BorderRadius.circular(6.0),
Duplication
Line 2252
Duplicate code found (appears 6 times)
borderRadius: BorderRadius.circular(6.0),
Duplication
Line 570
Duplicate code found (appears 3 times)
horizontal: Ui.getPadding(6),
Duplication
Line 903
Duplicate code found (appears 3 times)
horizontal: Ui.getPadding(6),
Duplication
Line 2247
Duplicate code found (appears 3 times)
horizontal: Ui.getPadding(6),
Duplication
Line 571
Duplicate code found (appears 3 times)
vertical: Ui.getPadding(2.2),
Duplication
Line 904
Duplicate code found (appears 3 times)
vertical: Ui.getPadding(2.2),
Duplication
Line 2248
Duplicate code found (appears 3 times)
vertical: Ui.getPadding(2.2),
Duplication
Line 573
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 906
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 2250
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 580
Duplicate code found (appears 3 times)
AppIcons.upayExpressLogo,
Duplication
Line 913
Duplicate code found (appears 3 times)
AppIcons.upayExpressLogo,
Duplication
Line 2257
Duplicate code found (appears 3 times)
AppIcons.upayExpressLogo,
Duplication
Line 581
Duplicate code found (appears 3 times)
fit: BoxFit.fitWidth,
Duplication
Line 914
Duplicate code found (appears 3 times)
fit: BoxFit.fitWidth,
Duplication
Line 2258
Duplicate code found (appears 3 times)
fit: BoxFit.fitWidth,
Duplication
Line 587
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1.2)),
Duplication
Line 920
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1.2)),
Duplication
Line 2264
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1.2)),
Duplication
Line 592
Duplicate code found (appears 3 times)
title: getLangStr(context, "guest_checkout"),
Duplication
Line 925
Duplicate code found (appears 3 times)
title: getLangStr(context, "guest_checkout"),
Duplication
Line 2269
Duplicate code found (appears 3 times)
title: getLangStr(context, "guest_checkout"),
Duplication
Line 597
Duplicate code found (appears 4 times)
message: "feature_available_soon",
Duplication
Line 930
Duplicate code found (appears 4 times)
message: "feature_available_soon",
Duplication
Line 1484
Duplicate code found (appears 4 times)
message: "feature_available_soon",
Duplication
Line 2274
Duplicate code found (appears 4 times)
message: "feature_available_soon",
Duplication
Line 603
Duplicate code found (appears 3 times)
SizedBox(width: Ui.getPadding(1)),
Duplication
Line 936
Duplicate code found (appears 3 times)
SizedBox(width: Ui.getPadding(1)),
Duplication
Line 2280
Duplicate code found (appears 3 times)
SizedBox(width: Ui.getPadding(1)),
Duplication
Line 606
Duplicate code found (appears 3 times)
title: getLangStr(context, "pay_with"),
Duplication
Line 939
Duplicate code found (appears 3 times)
title: getLangStr(context, "pay_with"),
Duplication
Line 2283
Duplicate code found (appears 3 times)
title: getLangStr(context, "pay_with"),
Duplication
Line 607
Duplicate code found (appears 3 times)
suffixIcon: AppIcons.upayText,
Duplication
Line 940
Duplicate code found (appears 3 times)
suffixIcon: AppIcons.upayText,
Duplication
Line 2284
Duplicate code found (appears 3 times)
suffixIcon: AppIcons.upayText,
Duplication
Line 609
Duplicate code found (appears 3 times)
_showPaymentMethods(billerFee);
Duplication
Line 942
Duplicate code found (appears 3 times)
_showPaymentMethods(billerFee);
Duplication
Line 2286
Duplicate code found (appears 3 times)
_showPaymentMethods(billerFee);
Duplication
Line 688
Duplicate code found (appears 2 times)
padding: EdgeInsets.fromLTRB(
Duplication
Line 964
Duplicate code found (appears 2 times)
padding: EdgeInsets.fromLTRB(
Duplication
Line 702
Duplicate code found (appears 2 times)
padding: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 1190
Duplicate code found (appears 2 times)
padding: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 704
Duplicate code found (appears 6 times)
color: AppColors.white,
Duplication
Line 718
Duplicate code found (appears 6 times)
color: AppColors.white,
Duplication
Line 1987
Duplicate code found (appears 6 times)
color: AppColors.white,
Duplication
Line 2315
Duplicate code found (appears 6 times)
color: AppColors.white,
Duplication
Line 2493
Duplicate code found (appears 6 times)
color: AppColors.white,
Duplication
Line 2560
Duplicate code found (appears 6 times)
color: AppColors.white,
Duplication
Line 705
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(Ui.getRadius(1.5)),
Duplication
Line 1826
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(Ui.getRadius(1.5)),
Duplication
Line 710
Duplicate code found (appears 2 times)
offset: Offset(0, Ui.getPadding(1)),
Duplication
Line 726
Duplicate code found (appears 2 times)
offset: Offset(0, Ui.getPadding(1)),
Duplication
Line 741
Duplicate code found (appears 5 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 2347
Duplicate code found (appears 5 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 2351
Duplicate code found (appears 5 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 2374
Duplicate code found (appears 5 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 2396
Duplicate code found (appears 5 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 746
Duplicate code found (appears 2 times)
style: TextStyles.defaultText.copyWith(
Duplication
Line 759
Duplicate code found (appears 2 times)
style: TextStyles.defaultText.copyWith(
Duplication
Line 770
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(4)),
Duplication
Line 1159
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(4)),
Duplication
Line 777
Duplicate code found (appears 2 times)
AmountUtil.formatAmount(billerFee.amount.toString()),
Duplication
Line 2434
Duplicate code found (appears 2 times)
AmountUtil.formatAmount(billerFee.amount.toString()),
Duplication
Line 791
Duplicate code found (appears 3 times)
[AmountUtil.formatAmount(billerFee.fee.toString())],
Duplication
Line 2135
Duplicate code found (appears 3 times)
[AmountUtil.formatAmount(billerFee.fee.toString())],
Duplication
Line 2448
Duplicate code found (appears 3 times)
[AmountUtil.formatAmount(billerFee.fee.toString())],
Duplication
Line 803
Duplicate code found (appears 3 times)
AmountUtil.formatAmount(billerFee.total.toString()),
Duplication
Line 2147
Duplicate code found (appears 3 times)
AmountUtil.formatAmount(billerFee.total.toString()),
Duplication
Line 2460
Duplicate code found (appears 3 times)
AmountUtil.formatAmount(billerFee.total.toString()),
Duplication
Line 863
Duplicate code found (appears 3 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 1856
Duplicate code found (appears 3 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 2207
Duplicate code found (appears 3 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 865
Duplicate code found (appears 3 times)
decoration: TextDecoration.underline,
Duplication
Line 1858
Duplicate code found (appears 3 times)
decoration: TextDecoration.underline,
Duplication
Line 2209
Duplicate code found (appears 3 times)
decoration: TextDecoration.underline,
Duplication
Line 866
Duplicate code found (appears 2 times)
decorationColor: AppColors.grey1,
Duplication
Line 2210
Duplicate code found (appears 2 times)
decorationColor: AppColors.grey1,
Duplication
Line 1015
Duplicate code found (appears 3 times)
if (isAccountNoField) {
Duplication
Line 1087
Duplicate code found (appears 3 times)
if (isAccountNoField) {
Duplication
Line 1311
Duplicate code found (appears 3 times)
if (isAccountNoField) {
Duplication
Line 1028
Duplicate code found (appears 2 times)
thisField = ValueListenableBuilder(
Duplication
Line 1063
Duplicate code found (appears 2 times)
thisField = ValueListenableBuilder(
Duplication
Line 1031
Duplicate code found (appears 2 times)
return AmountInputField(
Duplication
Line 1147
Duplicate code found (appears 2 times)
return AmountInputField(
Duplication
Line 1035
Duplicate code found (appears 2 times)
maxLength: f.maxLength,
Duplication
Line 1073
Duplicate code found (appears 2 times)
maxLength: f.maxLength,
Duplication
Line 1036
Duplicate code found (appears 2 times)
validator: f.required
Duplication
Line 1102
Duplicate code found (appears 2 times)
validator: f.required
Duplication
Line 1038
Duplicate code found (appears 2 times)
if (!ValidationService
Duplication
Line 1104
Duplicate code found (appears 2 times)
if (!ValidationService
Duplication
Line 1039
Duplicate code found (appears 2 times)
.validateNotEmpty(text)) {
Duplication
Line 1105
Duplicate code found (appears 2 times)
.validateNotEmpty(text)) {
Duplication
Line 1040
Duplicate code found (appears 3 times)
return getLangReplaced(
Duplication
Line 1106
Duplicate code found (appears 3 times)
return getLangReplaced(
Duplication
Line 1116
Duplicate code found (appears 3 times)
return getLangReplaced(
Duplication
Line 1047
Duplicate code found (appears 2 times)
if ((f.minLength != null) &&
Duplication
Line 1113
Duplicate code found (appears 2 times)
if ((f.minLength != null) &&
Duplication
Line 1048
Duplicate code found (appears 2 times)
((text?.length ?? 0) <
Duplication
Line 1114
Duplicate code found (appears 2 times)
((text?.length ?? 0) <
Duplication
Line 1049
Duplicate code found (appears 2 times)
(f.minLength ?? 0))) {
Duplication
Line 1115
Duplicate code found (appears 2 times)
(f.minLength ?? 0))) {
Duplication
Line 1088
Duplicate code found (appears 3 times)
FocusScope.of(context)
Duplication
Line 1092
Duplicate code found (appears 3 times)
FocusScope.of(context)
Duplication
Line 1095
Duplicate code found (appears 3 times)
FocusScope.of(context)
Duplication
Line 1089
Duplicate code found (appears 2 times)
.requestFocus(FocusNode());
Duplication
Line 1096
Duplicate code found (appears 2 times)
.requestFocus(FocusNode());
Duplication
Line 1240
Duplicate code found (appears 11 times)
widget.progressNotifier.value = true;
Duplication
Line 1323
Duplicate code found (appears 11 times)
widget.progressNotifier.value = true;
Duplication
Line 1360
Duplicate code found (appears 11 times)
widget.progressNotifier.value = true;
Duplication
Line 1385
Duplicate code found (appears 11 times)
widget.progressNotifier.value = true;
Duplication
Line 1399
Duplicate code found (appears 11 times)
widget.progressNotifier.value = true;
Duplication
Line 1452
Duplicate code found (appears 11 times)
widget.progressNotifier.value = true;
Duplication
Line 1496
Duplicate code found (appears 11 times)
widget.progressNotifier.value = true;
Duplication
Line 1516
Duplicate code found (appears 11 times)
widget.progressNotifier.value = true;
Duplication
Line 1558
Duplicate code found (appears 11 times)
widget.progressNotifier.value = true;
Duplication
Line 1632
Duplicate code found (appears 11 times)
widget.progressNotifier.value = true;
Duplication
Line 1946
Duplicate code found (appears 11 times)
widget.progressNotifier.value = true;
Duplication
Line 1248
Duplicate code found (appears 5 times)
onComplete: () => widget.progressNotifier.value = false,
Duplication
Line 1352
Duplicate code found (appears 5 times)
onComplete: () => widget.progressNotifier.value = false,
Duplication
Line 1378
Duplicate code found (appears 5 times)
onComplete: () => widget.progressNotifier.value = false,
Duplication
Line 1392
Duplicate code found (appears 5 times)
onComplete: () => widget.progressNotifier.value = false,
Duplication
Line 1777
Duplicate code found (appears 5 times)
onComplete: () => widget.progressNotifier.value = false,
Duplication
Line 1293
Duplicate code found (appears 2 times)
billerId: _selectedBiller?.id ?? 0,
Duplication
Line 1363
Duplicate code found (appears 2 times)
billerId: _selectedBiller?.id ?? 0,
Duplication
Line 1297
Duplicate code found (appears 11 times)
onFail: (title, message, data) {
Duplication
Line 1375
Duplicate code found (appears 11 times)
onFail: (title, message, data) {
Duplication
Line 1389
Duplicate code found (appears 11 times)
onFail: (title, message, data) {
Duplication
Line 1406
Duplicate code found (appears 11 times)
onFail: (title, message, data) {
Duplication
Line 1476
Duplicate code found (appears 11 times)
onFail: (title, message, data) {
Duplication
Line 1508
Duplicate code found (appears 11 times)
onFail: (title, message, data) {
Duplication
Line 1528
Duplicate code found (appears 11 times)
onFail: (title, message, data) {
Duplication
Line 1604
Duplicate code found (appears 11 times)
onFail: (title, message, data) {
Duplication
Line 1661
Duplicate code found (appears 11 times)
onFail: (title, message, data) {
Duplication
Line 1907
Duplicate code found (appears 11 times)
onFail: (title, message, data) {
Duplication
Line 1960
Duplicate code found (appears 11 times)
onFail: (title, message, data) {
Duplication
Line 1298
Duplicate code found (appears 13 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1390
Duplicate code found (appears 13 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1408
Duplicate code found (appears 13 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1478
Duplicate code found (appears 13 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1510
Duplicate code found (appears 13 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1530
Duplicate code found (appears 13 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1610
Duplicate code found (appears 13 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1614
Duplicate code found (appears 13 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1667
Duplicate code found (appears 13 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1671
Duplicate code found (appears 13 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1726
Duplicate code found (appears 13 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1730
Duplicate code found (appears 13 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1908
Duplicate code found (appears 13 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1328
Duplicate code found (appears 2 times)
biller: _selectedBillerNotifier.value!,
Duplication
Line 1344
Duplicate code found (appears 2 times)
biller: _selectedBillerNotifier.value!,
Duplication
Line 1336
Duplicate code found (appears 10 times)
widget.progressNotifier.value = false;
Duplication
Line 1403
Duplicate code found (appears 10 times)
widget.progressNotifier.value = false;
Duplication
Line 1407
Duplicate code found (appears 10 times)
widget.progressNotifier.value = false;
Duplication
Line 1477
Duplicate code found (appears 10 times)
widget.progressNotifier.value = false;
Duplication
Line 1509
Duplicate code found (appears 10 times)
widget.progressNotifier.value = false;
Duplication
Line 1529
Duplicate code found (appears 10 times)
widget.progressNotifier.value = false;
Duplication
Line 1543
Duplicate code found (appears 10 times)
widget.progressNotifier.value = false;
Duplication
Line 1605
Duplicate code found (appears 10 times)
widget.progressNotifier.value = false;
Duplication
Line 1662
Duplicate code found (appears 10 times)
widget.progressNotifier.value = false;
Duplication
Line 1965
Duplicate code found (appears 10 times)
widget.progressNotifier.value = false;
Duplication
Line 1338
Duplicate code found (appears 2 times)
await _paymentRepo.getBillerCharges(
Duplication
Line 1361
Duplicate code found (appears 2 times)
await _paymentRepo.getBillerCharges(
Duplication
Line 1342
Duplicate code found (appears 2 times)
onSuccess: (amount, charges, totalCharges) {
Duplication
Line 1365
Duplicate code found (appears 2 times)
onSuccess: (amount, charges, totalCharges) {
Duplication
Line 1343
Duplicate code found (appears 2 times)
_billerFeeNotifier.value = BillerFee(
Duplication
Line 1368
Duplicate code found (appears 2 times)
_billerFeeNotifier.value = BillerFee(
Duplication
Line 1466
Duplicate code found (appears 2 times)
_paymentRepo.payWithUpayExpress(
Duplication
Line 1498
Duplicate code found (appears 2 times)
_paymentRepo.payWithUpayExpress(
Duplication
Line 1468
Duplicate code found (appears 3 times)
amount: billerFee.amount,
Duplication
Line 1500
Duplicate code found (appears 3 times)
amount: billerFee.amount,
Duplication
Line 1592
Duplicate code found (appears 3 times)
amount: billerFee.amount,
Duplication
Line 1469
Duplicate code found (appears 3 times)
billerId: billerFee.biller.id ?? 0,
Duplication
Line 1501
Duplicate code found (appears 3 times)
billerId: billerFee.biller.id ?? 0,
Duplication
Line 1591
Duplicate code found (appears 3 times)
billerId: billerFee.biller.id ?? 0,
Duplication
Line 1470
Duplicate code found (appears 3 times)
fieldData: sendFieldList,
Duplication
Line 1502
Duplicate code found (appears 3 times)
fieldData: sendFieldList,
Duplication
Line 1593
Duplicate code found (appears 3 times)
fieldData: sendFieldList,
Duplication
Line 1471
Duplicate code found (appears 2 times)
onSuccess: (data) => _onBillPayInitSuccess(
Duplication
Line 1503
Duplicate code found (appears 2 times)
onSuccess: (data) => _onBillPayInitSuccess(
Duplication
Line 1472
Duplicate code found (appears 4 times)
billerFee: billerFee,
Duplication
Line 1504
Duplicate code found (appears 4 times)
billerFee: billerFee,
Duplication
Line 1599
Duplicate code found (appears 4 times)
billerFee: billerFee,
Duplication
Line 1656
Duplicate code found (appears 4 times)
billerFee: billerFee,
Duplication
Line 1474
Duplicate code found (appears 4 times)
sendFieldList: sendFieldList,
Duplication
Line 1506
Duplicate code found (appears 4 times)
sendFieldList: sendFieldList,
Duplication
Line 1601
Duplicate code found (appears 4 times)
sendFieldList: sendFieldList,
Duplication
Line 1658
Duplicate code found (appears 4 times)
sendFieldList: sendFieldList,
Duplication
Line 1492
Duplicate code found (appears 4 times)
final List> sendFieldList = _fieldListData
Duplication
Line 1578
Duplicate code found (appears 4 times)
final List> sendFieldList = _fieldListData
Duplication
Line 1636
Duplicate code found (appears 4 times)
final List> sendFieldList = _fieldListData
Duplication
Line 1785
Duplicate code found (appears 4 times)
final List> sendFieldList = _fieldListData
Duplication
Line 1493
Duplicate code found (appears 4 times)
.map((field) => {field.keys.first.toString(): field.values.first.text})
Duplication
Line 1579
Duplicate code found (appears 4 times)
.map((field) => {field.keys.first.toString(): field.values.first.text})
Duplication
Line 1637
Duplicate code found (appears 4 times)
.map((field) => {field.keys.first.toString(): field.values.first.text})
Duplication
Line 1786
Duplicate code found (appears 4 times)
.map((field) => {field.keys.first.toString(): field.values.first.text})
Duplication
Line 1538
Duplicate code found (appears 2 times)
BillerFee? billerFee,
Duplication
Line 1686
Duplicate code found (appears 2 times)
BillerFee? billerFee,
Duplication
Line 1552
Duplicate code found (appears 2 times)
printLog("init -> ${source.accountName}");
Duplication
Line 1626
Duplicate code found (appears 2 times)
printLog("init -> ${source.accountName}");
Duplication
Line 1553
Duplicate code found (appears 2 times)
printLog("init points -> ${source.isPoints}");
Duplication
Line 1627
Duplicate code found (appears 2 times)
printLog("init points -> ${source.isPoints}");
Duplication
Line 1554
Duplicate code found (appears 2 times)
printLog("init ownbank -> ${source.isOwnBank}");
Duplication
Line 1628
Duplicate code found (appears 2 times)
printLog("init ownbank -> ${source.isOwnBank}");
Duplication
Line 1557
Duplicate code found (appears 2 times)
printLog("===== LOADING STARTED =====");
Duplication
Line 1631
Duplicate code found (appears 2 times)
printLog("===== LOADING STARTED =====");
Duplication
Line 1576
Duplicate code found (appears 2 times)
printLog("===== BEFORE MAPPING THE FIELD LIST DATA =====");
Duplication
Line 1634
Duplicate code found (appears 2 times)
printLog("===== BEFORE MAPPING THE FIELD LIST DATA =====");
Duplication
Line 1582
Duplicate code found (appears 2 times)
printLog("===== SEND FIELD LIST HAS BEEN ASSIGNED =====");
Duplication
Line 1640
Duplicate code found (appears 2 times)
printLog("===== SEND FIELD LIST HAS BEEN ASSIGNED =====");
Duplication
Line 1584
Duplicate code found (appears 2 times)
_bpDto.amount = billerFee.amount;
Duplication
Line 1642
Duplicate code found (appears 2 times)
_bpDto.amount = billerFee.amount;
Duplication
Line 1585
Duplicate code found (appears 2 times)
_bpDto.usePoints = source.isPoints ?? false;
Duplication
Line 1643
Duplicate code found (appears 2 times)
_bpDto.usePoints = source.isPoints ?? false;
Duplication
Line 1587
Duplicate code found (appears 2 times)
printLog("===== BEFORE INITIALISING BILL PAYMENT =====");
Duplication
Line 1645
Duplicate code found (appears 2 times)
printLog("===== BEFORE INITIALISING BILL PAYMENT =====");
Duplication
Line 1594
Duplicate code found (appears 2 times)
usePoints: source.isPoints ?? false,
Duplication
Line 1651
Duplicate code found (appears 2 times)
usePoints: source.isPoints ?? false,
Duplication
Line 1595
Duplicate code found (appears 2 times)
sourceId: int.tryParse(source.id ?? "0") ?? 0,
Duplication
Line 1652
Duplicate code found (appears 2 times)
sourceId: int.tryParse(source.id ?? "0") ?? 0,
Duplication
Line 1597
Duplicate code found (appears 2 times)
printLog("===== BILL PAYMENT HAS BEEN SUCCESS =====");
Duplication
Line 1654
Duplicate code found (appears 2 times)
printLog("===== BILL PAYMENT HAS BEEN SUCCESS =====");
Duplication
Line 1607
Duplicate code found (appears 2 times)
if (data["data"]["code"] == ScenarioCodes.userSpecificError) {
Duplication
Line 1664
Duplicate code found (appears 2 times)
if (data["data"]["code"] == ScenarioCodes.userSpecificError) {
Duplication
Line 1608
Duplicate code found (appears 2 times)
printLog("===== BILL PAYMENT HAS FAILED =====");
Duplication
Line 1665
Duplicate code found (appears 2 times)
printLog("===== BILL PAYMENT HAS FAILED =====");
Duplication
Line 1618
Duplicate code found (appears 2 times)
_onBillPayFailed(data);
Duplication
Line 1675
Duplicate code found (appears 2 times)
_onBillPayFailed(data);
Duplication
Line 1622
Duplicate code found (appears 2 times)
printLog("===== BILL PAYMENT HAS BEEN INITIALISED =====");
Duplication
Line 1679
Duplicate code found (appears 2 times)
printLog("===== BILL PAYMENT HAS BEEN INITIALISED =====");
Duplication
Line 1688
Duplicate code found (appears 2 times)
_otpBottomSheetLoader.value = true;
Duplication
Line 1891
Duplicate code found (appears 2 times)
_otpBottomSheetLoader.value = true;
Duplication
Line 1692
Duplicate code found (appears 2 times)
sessionId: sessionId,
Duplication
Line 1894
Duplicate code found (appears 2 times)
sessionId: sessionId,
Duplication
Line 1698
Duplicate code found (appears 2 times)
_bpDto.sourceAccount = data["source"];
Duplication
Line 1748
Duplicate code found (appears 2 times)
_bpDto.sourceAccount = data["source"];
Duplication
Line 1700
Duplicate code found (appears 2 times)
_bpDto.transactionId = data["transaction_id"];
Duplication
Line 1750
Duplicate code found (appears 2 times)
_bpDto.transactionId = data["transaction_id"];
Duplication
Line 1710
Duplicate code found (appears 2 times)
_bpDto.fromMobilePayments = widget.fromMobilePayment ?? false;
Duplication
Line 1754
Duplicate code found (appears 2 times)
_bpDto.fromMobilePayments = widget.fromMobilePayment ?? false;
Duplication
Line 1711
Duplicate code found (appears 2 times)
getAppState(context).statePointBalance = await _fetchPointsBalance();
Duplication
Line 1762
Duplicate code found (appears 2 times)
getAppState(context).statePointBalance = await _fetchPointsBalance();
Duplication
Line 1722
Duplicate code found (appears 3 times)
_otpController.clear();
Duplication
Line 1784
Duplicate code found (appears 3 times)
_otpController.clear();
Duplication
Line 1899
Duplicate code found (appears 3 times)
_otpController.clear();
Duplication
Line 1723
Duplicate code found (appears 2 times)
_otpBottomSheetLoader.value = false;
Duplication
Line 1911
Duplicate code found (appears 2 times)
_otpBottomSheetLoader.value = false;
Duplication
Line 1842
Duplicate code found (appears 2 times)
textAlign: TextAlign.center,
Duplication
Line 2522
Duplicate code found (appears 2 times)
textAlign: TextAlign.center,
Duplication
Line 1853
Duplicate code found (appears 2 times)
_sendFundTransferOtp(sessionId: sessionId);
Duplication
Line 1929
Duplicate code found (appears 2 times)
_sendFundTransferOtp(sessionId: sessionId);
Duplication
Line 2044
Duplicate code found (appears 4 times)
fontSize: Ui.getFontSize(1),
Duplication
Line 2063
Duplicate code found (appears 4 times)
fontSize: Ui.getFontSize(1),
Duplication
Line 2081
Duplicate code found (appears 4 times)
fontSize: Ui.getFontSize(1),
Duplication
Line 2099
Duplicate code found (appears 4 times)
fontSize: Ui.getFontSize(1),
Duplication
Line 2477
Duplicate code found (appears 2 times)
}) : super(key: key);
Duplication
Line 2548
Duplicate code found (appears 2 times)
}) : super(key: key);
Duplication
Line 2512
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w500,
Duplication
Line 2525
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w500,
Unused Import
Line 1
Unused import: dart:async
import "dart:async";
Long Method
Line 142
Method is too long (41 lines)
void initState() {
Long Method
Line 275
Method is too long (396 lines)
Widget build(BuildContext context) {
Dead Code
Line 673
Private method '_onWhatIsUpayExpressTap' is never called
void _onWhatIsUpayExpressTap() =>
Dead Code
Line 676
Private method '_onCloseButtonTap' is never called
void _onCloseButtonTap() => setState(() => _isUpayDetailsAvailable = false);
Potential Bug
Line 144
Null check without null-aware operator (?.)
if (widget.selectedBiller != null && widget.billerFee != null) {
Potential Bug
Line 171
Null check without null-aware operator (?.)
if (widget.billerFieldData != null &&
Potential Bug
Line 177
Null check without null-aware operator (?.)
if (widget.trafficFinesModel != null) {
Potential Bug
Line 257
Null check without null-aware operator (?.)
if (widget.trafficFinesModel != null) {
Potential Bug
Line 284
Null check without null-aware operator (?.)
if (widget.trafficFinesModel != null && (billerFee != null)) {
Potential Bug
Line 497
Null check without null-aware operator (?.)
// child: (amountData['min_amount'] != null &&
Potential Bug
Line 498
Null check without null-aware operator (?.)
// amountData['max_amount'] != null)
Potential Bug
Line 631
Null check without null-aware operator (?.)
if ((biller != null) && (billerFee != null)) {
Potential Bug
Line 637
Null check without null-aware operator (?.)
if (biller != null) {
Potential Bug
Line 833
Null check without null-aware operator (?.)
// child: (amountData['min_amount'] != null &&
Potential Bug
Line 834
Null check without null-aware operator (?.)
// amountData['max_amount'] != null)
Potential Bug
Line 956
Null check without null-aware operator (?.)
printLog("IS BILLER SELECTED -> ${_selectedBillerNotifier.value != null}");
Potential Bug
Line 997
Null check without null-aware operator (?.)
if (biller.fieldData != null) {
Potential Bug
Line 1047
Null check without null-aware operator (?.)
if ((f.minLength != null) &&
Potential Bug
Line 1076
Null check without null-aware operator (?.)
(accStatus != null)
Potential Bug
Line 1113
Null check without null-aware operator (?.)
if ((f.minLength != null) &&
Potential Bug
Line 1161
Null check without null-aware operator (?.)
// (_billerPaymentLimitModel != null)
Potential Bug
Line 1325
Null check without null-aware operator (?.)
if (widget.trafficFinesModel != null) {
Potential Bug
Line 1451
Null check without null-aware operator (?.)
if (widget.trafficFinesModel != null) {
Potential Bug
Line 1540
Null check without null-aware operator (?.)
if (billerFee != null &&
Potential Bug
Line 2177
Null check without null-aware operator (?.)
// child: (amountData['min_amount'] != null &&
Potential Bug
Line 2178
Null check without null-aware operator (?.)
// amountData['max_amount'] != null)

C:\Users\PM_User\Documents\upay-mobile\lib\screens\bottom_sheets\change_language_sheet.dart

Metric Value
Total Lines 137
Code Lines 131
Comment Lines 0
Comment Density 0.0%
Total Issues 5

Issues Found:

Duplication
Line 25
Duplicate code found (appears 2 times)
languageNotifier?.value = languages;
Duplication
Line 35
Duplicate code found (appears 2 times)
languageNotifier?.value = languages;
Duplication
Line 26
Duplicate code found (appears 2 times)
getAppLang(context).changeLanguage(languages);
Duplication
Line 36
Duplicate code found (appears 2 times)
getAppLang(context).changeLanguage(languages);
Long Method
Line 42
Method is too long (69 lines)
void show() {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\bottom_sheets\change_password_sheet.dart

Metric Value
Total Lines 105
Code Lines 87
Comment Lines 9
Comment Density 10.3%
Total Issues 11

Issues Found:

Duplication
Line 59
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 71
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 81
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 60
Duplicate code found (appears 3 times)
child: PasswordInputField(
Duplication
Line 72
Duplicate code found (appears 3 times)
child: PasswordInputField(
Duplication
Line 82
Duplicate code found (appears 3 times)
child: PasswordInputField(
Duplication
Line 64
Duplicate code found (appears 3 times)
errorStyle: const TextStyle(),
Duplication
Line 74
Duplicate code found (appears 3 times)
errorStyle: const TextStyle(),
Duplication
Line 86
Duplicate code found (appears 3 times)
errorStyle: const TextStyle(),
Duplication
Line 68
Duplicate code found (appears 2 times)
height: Ui.getPadding(3),
Duplication
Line 78
Duplicate code found (appears 2 times)
height: Ui.getPadding(3),

C:\Users\PM_User\Documents\upay-mobile\lib\screens\bottom_sheets\loans_add_bottom_sheet.dart

Metric Value
Total Lines 95
Code Lines 94
Comment Lines 0
Comment Density 0.0%
Total Issues 6

Issues Found:

Duplication
Line 43
Duplicate code found (appears 2 times)
mainAxisAlignment: MainAxisAlignment.spaceAround,
Duplication
Line 65
Duplicate code found (appears 2 times)
mainAxisAlignment: MainAxisAlignment.spaceAround,
Duplication
Line 46
Duplicate code found (appears 4 times)
addLoansViewCardType:
Duplication
Line 53
Duplicate code found (appears 4 times)
addLoansViewCardType:
Duplication
Line 68
Duplicate code found (appears 4 times)
addLoansViewCardType:
Duplication
Line 75
Duplicate code found (appears 4 times)
addLoansViewCardType:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\bottom_sheets\select_bank_sheet.dart

Metric Value
Total Lines 148
Code Lines 135
Comment Lines 0
Comment Density 0.0%
Total Issues 10

Issues Found:

Duplication
Line 111
Duplicate code found (appears 2 times)
List? banksList;
Duplication
Line 134
Duplicate code found (appears 2 times)
List? banksList;
Duplication
Line 116
Duplicate code found (appears 2 times)
final banks = data["banks"] as List;
Duplication
Line 138
Duplicate code found (appears 2 times)
final banks = data["banks"] as List;
Duplication
Line 117
Duplicate code found (appears 2 times)
banksList = banks.map((e) => Bank.fromJson(e)).toList();
Duplication
Line 139
Duplicate code found (appears 2 times)
banksList = banks.map((e) => Bank.fromJson(e)).toList();
Duplication
Line 125
Duplicate code found (appears 2 times)
onFail: (title, message, data) {
Duplication
Line 141
Duplicate code found (appears 2 times)
onFail: (title, message, data) {
Duplication
Line 126
Duplicate code found (appears 2 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 142
Duplicate code found (appears 2 times)
AlertUtil.showError(context, message, title: title);

C:\Users\PM_User\Documents\upay-mobile\lib\screens\bottom_sheets\select_biller_sheet.dart

Metric Value
Total Lines 160
Code Lines 144
Comment Lines 0
Comment Density 0.0%
Total Issues 6

Issues Found:

Duplication
Line 48
Duplicate code found (appears 2 times)
for (final biller in filteredBillers) {
Duplication
Line 62
Duplicate code found (appears 2 times)
for (final biller in filteredBillers) {
Duplication
Line 119
Duplicate code found (appears 2 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 137
Duplicate code found (appears 2 times)
width: ScreenUtil.width * 0.9,
Long Method
Line 33
Method is too long (55 lines)
void updateBillerLayoutView({required StateSetter innerSetState}) {
Potential Bug
Line 52
Null check without null-aware operator (?.)
if (currentBillerCategory != null &&

C:\Users\PM_User\Documents\upay-mobile\lib\screens\bottom_sheets\select_country_sheet.dart

Metric Value
Total Lines 164
Code Lines 154
Comment Lines 0
Comment Density 0.0%
Total Issues 4

Issues Found:

Duplication
Line 73
Duplicate code found (appears 2 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 96
Duplicate code found (appears 2 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 150
Duplicate code found (appears 2 times)
style: const TextStyle(
Duplication
Line 158
Duplicate code found (appears 2 times)
style: const TextStyle(

C:\Users\PM_User\Documents\upay-mobile\lib\screens\bottom_sheets\select_payee_sheet.dart

Metric Value
Total Lines 109
Code Lines 103
Comment Lines 0
Comment Density 0.0%
Total Issues 6

Issues Found:

Duplication
Line 64
Duplicate code found (appears 2 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 79
Duplicate code found (appears 2 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 85
Duplicate code found (appears 2 times)
width: constraints.maxWidth * 0.4,
Duplication
Line 95
Duplicate code found (appears 2 times)
width: constraints.maxWidth * 0.4,
Long Method
Line 30
Method is too long (25 lines)
void onSavePayeeTap() {
Long Method
Line 57
Method is too long (51 lines)
void show() {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\bottom_sheets\select_payment_method_sheet.dart

Metric Value
Total Lines 456
Code Lines 267
Comment Lines 168
Comment Density 62.9%
Total Issues 24

Issues Found:

Duplication
Line 106
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 157
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 108
Duplicate code found (appears 2 times)
const BottomSheetHeader(
Duplication
Line 159
Duplicate code found (appears 2 times)
const BottomSheetHeader(
Duplication
Line 109
Duplicate code found (appears 2 times)
headerTitle: "Select Source Account",
Duplication
Line 160
Duplicate code found (appears 2 times)
headerTitle: "Select Source Account",
Duplication
Line 112
Duplicate code found (appears 2 times)
height: Ui.getPadding(10),
Duplication
Line 116
Duplicate code found (appears 2 times)
height: Ui.getPadding(10),
Duplication
Line 129
Duplicate code found (appears 2 times)
return const SizedBox.shrink();
Duplication
Line 203
Duplicate code found (appears 2 times)
return const SizedBox.shrink();
Duplication
Line 186
Duplicate code found (appears 2 times)
height: Ui.getPadding(1.25),
Duplication
Line 197
Duplicate code found (appears 2 times)
height: Ui.getPadding(1.25),
Duplication
Line 236
Duplicate code found (appears 3 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 248
Duplicate code found (appears 3 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 261
Duplicate code found (appears 3 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 272
Duplicate code found (appears 2 times)
radius: ScreenUtil.width * 0.08,
Duplication
Line 277
Duplicate code found (appears 2 times)
radius: ScreenUtil.width * 0.08,
Duplication
Line 273
Duplicate code found (appears 2 times)
backgroundColor: AppColors.white,
Duplication
Line 278
Duplicate code found (appears 2 times)
backgroundColor: AppColors.white,
Long Method
Line 228
Method is too long (63 lines)
Widget build(BuildContext context) {
Potential Bug
Line 46
Null check without null-aware operator (?.)
// if (points != null &&
Potential Bug
Line 52
Null check without null-aware operator (?.)
if (points != null) {
Potential Bug
Line 286
Null check without null-aware operator (?.)
color: groupValue != null && groupValue == paymentSource
Potential Bug
Line 438
Null check without null-aware operator (?.)
// if (points != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\bottom_sheets\uearn_bottom_sheets.dart

Metric Value
Total Lines 1
Code Lines 1
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\credit_card_settlements\card_settlement_details_summary_screen.dart

Metric Value
Total Lines 565
Code Lines 502
Comment Lines 12
Comment Density 2.4%
Total Issues 51

Issues Found:

Duplication
Line 98
Duplicate code found (appears 4 times)
_progressNotifier.value = true;
Duplication
Line 137
Duplicate code found (appears 4 times)
_progressNotifier.value = true;
Duplication
Line 194
Duplicate code found (appears 4 times)
_progressNotifier.value = true;
Duplication
Line 248
Duplicate code found (appears 4 times)
_progressNotifier.value = true;
Duplication
Line 101
Duplicate code found (appears 2 times)
final payee = widget.creditCardSettlementRouteData.payee;
Duplication
Line 180
Duplicate code found (appears 2 times)
final payee = widget.creditCardSettlementRouteData.payee;
Duplication
Line 129
Duplicate code found (appears 3 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 170
Duplicate code found (appears 3 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 269
Duplicate code found (appears 3 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 163
Duplicate code found (appears 2 times)
ScreenRoutes.toEnterCreditCardSettlementOtpScreen,
Duplication
Line 440
Duplicate code found (appears 2 times)
ScreenRoutes.toEnterCreditCardSettlementOtpScreen,
Duplication
Line 167
Duplicate code found (appears 2 times)
onFail: (title, message, data) {
Duplication
Line 266
Duplicate code found (appears 2 times)
onFail: (title, message, data) {
Duplication
Line 168
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 175
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 267
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 197
Duplicate code found (appears 2 times)
_progressNotifier.value = false;
Duplication
Line 201
Duplicate code found (appears 2 times)
_progressNotifier.value = false;
Duplication
Line 300
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 323
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 337
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 328
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 357
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 499
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 344
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 471
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 345
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 472
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 348
Duplicate code found (appears 2 times)
color: AppColors.grey3,
Duplication
Line 475
Duplicate code found (appears 2 times)
color: AppColors.grey3,
Duplication
Line 361
Duplicate code found (appears 3 times)
MainAxisAlignment.spaceBetween,
Duplication
Line 378
Duplicate code found (appears 3 times)
MainAxisAlignment.spaceBetween,
Duplication
Line 393
Duplicate code found (appears 3 times)
MainAxisAlignment.spaceBetween,
Duplication
Line 365
Duplicate code found (appears 3 times)
getLangReplaced(context, "lkr_replace", [
Duplication
Line 382
Duplicate code found (appears 3 times)
getLangReplaced(context, "lkr_replace", [
Duplication
Line 397
Duplicate code found (appears 3 times)
getLangReplaced(context, "lkr_replace", [
Duplication
Line 366
Duplicate code found (appears 3 times)
AmountUtil.formatDoubleAmount(
Duplication
Line 383
Duplicate code found (appears 3 times)
AmountUtil.formatDoubleAmount(
Duplication
Line 398
Duplicate code found (appears 3 times)
AmountUtil.formatDoubleAmount(
Duplication
Line 375
Duplicate code found (appears 2 times)
Divider(height: Ui.getPadding(4)),
Duplication
Line 390
Duplicate code found (appears 2 times)
Divider(height: Ui.getPadding(4)),
Duplication
Line 427
Duplicate code found (appears 2 times)
padding: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 482
Duplicate code found (appears 2 times)
padding: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 496
Duplicate code found (appears 2 times)
SizedBox(width: Ui.getPadding(3)),
Duplication
Line 557
Duplicate code found (appears 2 times)
SizedBox(width: Ui.getPadding(3)),
Duplication
Line 506
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.5,
Duplication
Line 518
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.5,
Duplication
Line 535
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.5,
Dead Code
Line 66
Private method '_onBeneficiaryAccountNumberChanged' is never called
void _onBeneficiaryAccountNumberChanged(String enteredAccountNumber) {
Dead Code
Line 174
Private method '_onFail' is never called
void _onFail(String title, String message, Map data) {
Potential Bug
Line 100
Null check without null-aware operator (?.)
if (widget.creditCardSettlementRouteData.payee != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\credit_card_settlements\card_settlement_success_screen.dart

Metric Value
Total Lines 276
Code Lines 194
Comment Lines 68
Comment Density 35.1%
Total Issues 17

Issues Found:

Duplication
Line 60
Duplicate code found (appears 3 times)
progressNotifier: _progressNotifier,
Duplication
Line 72
Duplicate code found (appears 3 times)
progressNotifier: _progressNotifier,
Duplication
Line 180
Duplicate code found (appears 3 times)
progressNotifier: _progressNotifier,
Duplication
Line 87
Duplicate code found (appears 3 times)
textAlign: TextAlign.center,
Duplication
Line 97
Duplicate code found (appears 3 times)
textAlign: TextAlign.center,
Duplication
Line 115
Duplicate code found (appears 3 times)
textAlign: TextAlign.center,
Duplication
Line 88
Duplicate code found (appears 3 times)
style: const TextStyle(
Duplication
Line 98
Duplicate code found (appears 3 times)
style: const TextStyle(
Duplication
Line 116
Duplicate code found (appears 3 times)
style: const TextStyle(
Duplication
Line 90
Duplicate code found (appears 3 times)
fontWeight: FontWeight.w500,
Duplication
Line 100
Duplicate code found (appears 3 times)
fontWeight: FontWeight.w500,
Duplication
Line 118
Duplicate code found (appears 3 times)
fontWeight: FontWeight.w500,
Duplication
Line 125
Duplicate code found (appears 2 times)
if (widget.fundTransferSuccessDetail?.transactionStatus ==
Duplication
Line 135
Duplicate code found (appears 2 times)
if (widget.fundTransferSuccessDetail?.transactionStatus ==
Duplication
Line 130
Duplicate code found (appears 2 times)
fontWeight: FontWeight.bold,
Duplication
Line 140
Duplicate code found (appears 2 times)
fontWeight: FontWeight.bold,
Long Method
Line 70
Method is too long (142 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\credit_card_settlements\credit_card_settlements_screen.dart

Metric Value
Total Lines 308
Code Lines 245
Comment Lines 41
Comment Density 16.7%
Total Issues 13

Issues Found:

Duplication
Line 58
Duplicate code found (appears 2 times)
ScreenRoutes.toEnterCreditCardSettlementDetailsScreen,
Duplication
Line 79
Duplicate code found (appears 2 times)
ScreenRoutes.toEnterCreditCardSettlementDetailsScreen,
Duplication
Line 59
Duplicate code found (appears 2 times)
arguments: CreditCardSettlementRouteData(
Duplication
Line 80
Duplicate code found (appears 2 times)
arguments: CreditCardSettlementRouteData(
Duplication
Line 61
Duplicate code found (appears 2 times)
paymentSource: _selectedPaymentSource,
Duplication
Line 82
Duplicate code found (appears 2 times)
paymentSource: _selectedPaymentSource,
Duplication
Line 97
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(
Duplication
Line 143
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(
Duplication
Line 100
Duplicate code found (appears 2 times)
child: const CenterLoader(),
Duplication
Line 146
Duplicate code found (appears 2 times)
child: const CenterLoader(),
Duplication
Line 161
Duplicate code found (appears 2 times)
color: AppColors.orange1,
Duplication
Line 166
Duplicate code found (appears 2 times)
color: AppColors.orange1,
Dead Code
Line 49
Private method '_onAddBankAccountTap' is never called
void _onAddBankAccountTap() {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\credit_card_settlements\credit_card_settlements_success_screen.dart

Metric Value
Total Lines 130
Code Lines 111
Comment Lines 13
Comment Density 11.7%
Total Issues 7

Issues Found:

Duplication
Line 35
Duplicate code found (appears 2 times)
ScreenRoutes.toTransactionHistoriesScreen,
Duplication
Line 67
Duplicate code found (appears 2 times)
ScreenRoutes.toTransactionHistoriesScreen,
Duplication
Line 51
Duplicate code found (appears 2 times)
fontWeight: FontWeight.bold,
Duplication
Line 59
Duplicate code found (appears 2 times)
fontWeight: FontWeight.bold,
Duplication
Line 75
Duplicate code found (appears 2 times)
decoration: TextDecoration.underline,
Duplication
Line 89
Duplicate code found (appears 2 times)
decoration: TextDecoration.underline,
Dead Code
Line 33
Private method '_onViewTransactionHistoryTap' is never called
void _onViewTransactionHistoryTap() => pushScreen(

C:\Users\PM_User\Documents\upay-mobile\lib\screens\credit_card_settlements\enter_credit_card_settlement_detail_screen.dart

Metric Value
Total Lines 790
Code Lines 666
Comment Lines 61
Comment Density 9.2%
Total Issues 110

Issues Found:

Duplication
Line 127
Duplicate code found (appears 4 times)
_progressNotifier.value = true;
Duplication
Line 166
Duplicate code found (appears 4 times)
_progressNotifier.value = true;
Duplication
Line 256
Duplicate code found (appears 4 times)
_progressNotifier.value = true;
Duplication
Line 299
Duplicate code found (appears 4 times)
_progressNotifier.value = true;
Duplication
Line 129
Duplicate code found (appears 2 times)
if (_fromSavedPayeeScreen) {
Duplication
Line 716
Duplicate code found (appears 2 times)
if (_fromSavedPayeeScreen) {
Duplication
Line 130
Duplicate code found (appears 2 times)
final payee = widget.creditCardSettlementRouteData.payee;
Duplication
Line 250
Duplicate code found (appears 2 times)
final payee = widget.creditCardSettlementRouteData.payee;
Duplication
Line 173
Duplicate code found (appears 2 times)
_creditCardSettlementsRepo.initCreditCardSettlement(
Duplication
Line 300
Duplicate code found (appears 2 times)
_creditCardSettlementsRepo.initCreditCardSettlement(
Duplication
Line 177
Duplicate code found (appears 2 times)
widget.creditCardSettlementRouteData.paymentSource?.id ?? "-1",
Duplication
Line 304
Duplicate code found (appears 2 times)
widget.creditCardSettlementRouteData.paymentSource?.id ?? "-1",
Duplication
Line 194
Duplicate code found (appears 2 times)
final Map amountLimit = {
Duplication
Line 728
Duplicate code found (appears 2 times)
final Map amountLimit = {
Duplication
Line 198
Duplicate code found (appears 2 times)
_amountFiledValueNotifier.value = amountLimit;
Duplication
Line 732
Duplicate code found (appears 2 times)
_amountFiledValueNotifier.value = amountLimit;
Duplication
Line 199
Duplicate code found (appears 2 times)
WidgetsBinding.instance.addPostFrameCallback((_) {
Duplication
Line 746
Duplicate code found (appears 2 times)
WidgetsBinding.instance.addPostFrameCallback((_) {
Duplication
Line 201
Duplicate code found (appears 6 times)
widget.creditCardSettlementRouteData
Duplication
Line 224
Duplicate code found (appears 6 times)
widget.creditCardSettlementRouteData
Duplication
Line 463
Duplicate code found (appears 6 times)
widget.creditCardSettlementRouteData
Duplication
Line 465
Duplicate code found (appears 6 times)
widget.creditCardSettlementRouteData
Duplication
Line 750
Duplicate code found (appears 6 times)
widget.creditCardSettlementRouteData
Duplication
Line 766
Duplicate code found (appears 6 times)
widget.creditCardSettlementRouteData
Duplication
Line 202
Duplicate code found (appears 2 times)
.initCreditCardSettlementDetail =
Duplication
Line 751
Duplicate code found (appears 2 times)
.initCreditCardSettlementDetail =
Duplication
Line 204
Duplicate code found (appears 2 times)
widget.creditCardSettlementRouteData.initCreditCardSettlementDetail
Duplication
Line 210
Duplicate code found (appears 2 times)
widget.creditCardSettlementRouteData.initCreditCardSettlementDetail
Duplication
Line 208
Duplicate code found (appears 2 times)
widget.creditCardSettlementRouteData.amount =
Duplication
Line 753
Duplicate code found (appears 2 times)
widget.creditCardSettlementRouteData.amount =
Duplication
Line 211
Duplicate code found (appears 2 times)
?.isSavedPayee = true;
Duplication
Line 760
Duplicate code found (appears 2 times)
?.isSavedPayee = true;
Duplication
Line 221
Duplicate code found (appears 2 times)
"===== CREDIT CARD SETTLEMENT ROUTE DATA -> IS SAVED PAYEE",
Duplication
Line 763
Duplicate code found (appears 2 times)
"===== CREDIT CARD SETTLEMENT ROUTE DATA -> IS SAVED PAYEE",
Duplication
Line 225
Duplicate code found (appears 2 times)
.initCreditCardSettlementDetail?.isSavedPayee,
Duplication
Line 767
Duplicate code found (appears 2 times)
.initCreditCardSettlementDetail?.isSavedPayee,
Duplication
Line 230
Duplicate code found (appears 2 times)
ScreenRoutes.toCreditCardDetailsSummaryScreen,
Duplication
Line 772
Duplicate code found (appears 2 times)
ScreenRoutes.toCreditCardDetailsSummaryScreen,
Duplication
Line 231
Duplicate code found (appears 2 times)
arguments: widget.creditCardSettlementRouteData,
Duplication
Line 773
Duplicate code found (appears 2 times)
arguments: widget.creditCardSettlementRouteData,
Duplication
Line 236
Duplicate code found (appears 2 times)
onFail: (title, message, data) {
Duplication
Line 310
Duplicate code found (appears 2 times)
onFail: (title, message, data) {
Duplication
Line 237
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 245
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 311
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 239
Duplicate code found (appears 2 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 313
Duplicate code found (appears 2 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 244
Duplicate code found (appears 3 times)
_progressNotifier.value = false;
Duplication
Line 261
Duplicate code found (appears 3 times)
_progressNotifier.value = false;
Duplication
Line 265
Duplicate code found (appears 3 times)
_progressNotifier.value = false;
Duplication
Line 277
Duplicate code found (appears 2 times)
_amountController.text.replaceAll(",", ""),
Duplication
Line 755
Duplicate code found (appears 2 times)
_amountController.text.replaceAll(",", ""),
Duplication
Line 362
Duplicate code found (appears 4 times)
height: Ui.getPadding(3),
Duplication
Line 394
Duplicate code found (appears 4 times)
height: Ui.getPadding(3),
Duplication
Line 409
Duplicate code found (appears 4 times)
height: Ui.getPadding(3),
Duplication
Line 500
Duplicate code found (appears 4 times)
height: Ui.getPadding(3),
Duplication
Line 367
Duplicate code found (appears 2 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 506
Duplicate code found (appears 2 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 380
Duplicate code found (appears 2 times)
if (_fromSavedPayeeScreen)
Duplication
Line 405
Duplicate code found (appears 2 times)
if (_fromSavedPayeeScreen)
Duplication
Line 395
Duplicate code found (appears 3 times)
width: Ui.getPadding(3),
Duplication
Line 454
Duplicate code found (appears 3 times)
width: Ui.getPadding(3),
Duplication
Line 488
Duplicate code found (appears 3 times)
width: Ui.getPadding(3),
Duplication
Line 415
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 431
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 416
Duplicate code found (appears 5 times)
color: AppColors.white,
Duplication
Line 432
Duplicate code found (appears 5 times)
color: AppColors.white,
Duplication
Line 436
Duplicate code found (appears 5 times)
color: AppColors.white,
Duplication
Line 548
Duplicate code found (appears 5 times)
color: AppColors.white,
Duplication
Line 562
Duplicate code found (appears 5 times)
color: AppColors.white,
Duplication
Line 473
Duplicate code found (appears 2 times)
.creditCardSettlementRouteData
Duplication
Line 758
Duplicate code found (appears 2 times)
.creditCardSettlementRouteData
Duplication
Line 496
Duplicate code found (appears 2 times)
if (!_fromSavedPayeeScreen)
Duplication
Line 585
Duplicate code found (appears 2 times)
if (!_fromSavedPayeeScreen)
Duplication
Line 504
Duplicate code found (appears 5 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 526
Duplicate code found (appears 5 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 593
Duplicate code found (appears 5 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 643
Duplicate code found (appears 5 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 707
Duplicate code found (appears 5 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 527
Duplicate code found (appears 2 times)
child: LabelTextField(
Duplication
Line 594
Duplicate code found (appears 2 times)
child: LabelTextField(
Duplication
Line 535
Duplicate code found (appears 3 times)
suffixIcon: Visibility(
Duplication
Line 622
Duplicate code found (appears 3 times)
suffixIcon: Visibility(
Duplication
Line 651
Duplicate code found (appears 3 times)
suffixIcon: Visibility(
Duplication
Line 539
Duplicate code found (appears 2 times)
padding: EdgeInsets.only(
Duplication
Line 553
Duplicate code found (appears 2 times)
padding: EdgeInsets.only(
Duplication
Line 540
Duplicate code found (appears 2 times)
right: Ui.getPadding(1.5),
Duplication
Line 554
Duplicate code found (appears 2 times)
right: Ui.getPadding(1.5),
Duplication
Line 542
Duplicate code found (appears 2 times)
child: const CircleAvatar(
Duplication
Line 556
Duplicate code found (appears 2 times)
child: const CircleAvatar(
Duplication
Line 589
Duplicate code found (appears 2 times)
height: Ui.getPadding(3.2),
Duplication
Line 639
Duplicate code found (appears 2 times)
height: Ui.getPadding(3.2),
Duplication
Line 600
Duplicate code found (appears 2 times)
ValidationService.validateFirstAndLastName(
Duplication
Line 608
Duplicate code found (appears 2 times)
ValidationService.validateFirstAndLastName(
Duplication
Line 625
Duplicate code found (appears 2 times)
fillColor: MaterialStateProperty.all(
Duplication
Line 654
Duplicate code found (appears 2 times)
fillColor: MaterialStateProperty.all(
Duplication
Line 630
Duplicate code found (appears 2 times)
shape: const CircleBorder(),
Duplication
Line 659
Duplicate code found (appears 2 times)
shape: const CircleBorder(),
Duplication
Line 717
Duplicate code found (appears 2 times)
printLog("================================================");
Duplication
Line 719
Duplicate code found (appears 2 times)
printLog("================================================");
Duplication
Line 737
Duplicate code found (appears 2 times)
_amountFocus.requestFocus();
Duplication
Line 743
Duplicate code found (appears 2 times)
_amountFocus.requestFocus();
Dead Code
Line 73
Private method '_onBeneficiaryAccountNumberChanged' is never called
void _onBeneficiaryAccountNumberChanged(String enteredAccountNumber) {
Dead Code
Line 243
Private method '_onFail' is never called
void _onFail(String title, String message, Map data) {
Potential Bug
Line 330
Null check without null-aware operator (?.)
return (amount != null &&
Potential Bug
Line 536
Null check without null-aware operator (?.)
visible: _isValidCardNumber != null,
Potential Bug
Line 575
Null check without null-aware operator (?.)
return (error != null)
Potential Bug
Line 673
Null check without null-aware operator (?.)
// if (widget.creditCardSettlementRouteData.payee != null)
Potential Bug
Line 734
Null check without null-aware operator (?.)
if ((minAmount != null) &&
Potential Bug
Line 740
Null check without null-aware operator (?.)
if ((maxAmount != null) &&

C:\Users\PM_User\Documents\upay-mobile\lib\screens\credit_card_settlements\enter_credit_card_settlement_otp_screen.dart

Metric Value
Total Lines 386
Code Lines 347
Comment Lines 13
Comment Density 3.7%
Total Issues 42

Issues Found:

Duplication
Line 57
Duplicate code found (appears 2 times)
senderNumber: Env.otpSenderName,
Duplication
Line 327
Duplicate code found (appears 2 times)
senderNumber: Env.otpSenderName,
Duplication
Line 85
Duplicate code found (appears 3 times)
_otpController.clear();
Duplication
Line 143
Duplicate code found (appears 3 times)
_otpController.clear();
Duplication
Line 317
Duplicate code found (appears 3 times)
_otpController.clear();
Duplication
Line 112
Duplicate code found (appears 2 times)
_progressNotifier.value = true;
Duplication
Line 206
Duplicate code found (appears 2 times)
_progressNotifier.value = true;
Duplication
Line 117
Duplicate code found (appears 2 times)
sessionId: widget.initCreditCardSettlementDetail.sessionId.toString(),
Duplication
Line 232
Duplicate code found (appears 2 times)
sessionId: widget.initCreditCardSettlementDetail.sessionId.toString(),
Duplication
Line 120
Duplicate code found (appears 2 times)
details.payeeId = widget.initCreditCardSettlementDetail.payeeId;
Duplication
Line 146
Duplicate code found (appears 2 times)
details.payeeId = widget.initCreditCardSettlementDetail.payeeId;
Duplication
Line 121
Duplicate code found (appears 2 times)
details.savedPayeeId = widget.initCreditCardSettlementDetail.id;
Duplication
Line 147
Duplicate code found (appears 2 times)
details.savedPayeeId = widget.initCreditCardSettlementDetail.id;
Duplication
Line 122
Duplicate code found (appears 2 times)
details.isSavedPayee =
Duplication
Line 148
Duplicate code found (appears 2 times)
details.isSavedPayee =
Duplication
Line 123
Duplicate code found (appears 2 times)
widget.initCreditCardSettlementDetail.isSavedPayee;
Duplication
Line 149
Duplicate code found (appears 2 times)
widget.initCreditCardSettlementDetail.isSavedPayee;
Duplication
Line 132
Duplicate code found (appears 2 times)
getAppState(context).statePointBalance = await _fetchPointsBalance();
Duplication
Line 175
Duplicate code found (appears 2 times)
getAppState(context).statePointBalance = await _fetchPointsBalance();
Duplication
Line 137
Duplicate code found (appears 2 times)
ScreenRoutes.toCardSettlementSuccessScreen,
Duplication
Line 155
Duplicate code found (appears 2 times)
ScreenRoutes.toCardSettlementSuccessScreen,
Duplication
Line 142
Duplicate code found (appears 3 times)
_progressNotifier.value = false;
Duplication
Line 158
Duplicate code found (appears 3 times)
_progressNotifier.value = false;
Duplication
Line 217
Duplicate code found (appears 3 times)
_progressNotifier.value = false;
Duplication
Line 176
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 214
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 235
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 194
Duplicate code found (appears 2 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 237
Duplicate code found (appears 2 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 213
Duplicate code found (appears 2 times)
onFail: (title, message, data) {
Duplication
Line 234
Duplicate code found (appears 2 times)
onFail: (title, message, data) {
Duplication
Line 267
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 356
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 374
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 307
Duplicate code found (appears 2 times)
decoration: TextDecoration.underline,
Duplication
Line 313
Duplicate code found (appears 2 times)
decoration: TextDecoration.underline,
Duplication
Line 312
Duplicate code found (appears 2 times)
style: const TextStyle(
Duplication
Line 362
Duplicate code found (appears 2 times)
style: const TextStyle(
Duplication
Line 349
Duplicate code found (appears 2 times)
color: AppColors.red,
Duplication
Line 363
Duplicate code found (appears 2 times)
color: AppColors.red,
Unused Import
Line 1
Unused import: dart:async
import "dart:async";
Potential Bug
Line 161
Empty catch block - exceptions should be handled properly
} catch (e) {}

C:\Users\PM_User\Documents\upay-mobile\lib\screens\credit_card_settlements\update_card_settlement_payee_details.dart

Metric Value
Total Lines 223
Code Lines 203
Comment Lines 1
Comment Density 0.5%
Total Issues 14

Issues Found:

Duplication
Line 68
Duplicate code found (appears 2 times)
_progressNotifier.value = true;
Duplication
Line 92
Duplicate code found (appears 2 times)
_progressNotifier.value = true;
Duplication
Line 77
Duplicate code found (appears 2 times)
pushScreen(context, ScreenRoutes.toCreditCardSettlementsScreen);
Duplication
Line 99
Duplicate code found (appears 2 times)
pushScreen(context, ScreenRoutes.toCreditCardSettlementsScreen);
Duplication
Line 80
Duplicate code found (appears 2 times)
onFailed: (title, message, data) {
Duplication
Line 102
Duplicate code found (appears 2 times)
onFailed: (title, message, data) {
Duplication
Line 83
Duplicate code found (appears 2 times)
message ?? ErrorMessages.unexpectedError,
Duplication
Line 105
Duplicate code found (appears 2 times)
message ?? ErrorMessages.unexpectedError,
Duplication
Line 87
Duplicate code found (appears 2 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 109
Duplicate code found (appears 2 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 137
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 152
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 165
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Dead Code
Line 53
Private method '_onEditPayeeTap' is never called
void _onEditPayeeTap() {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\fund_transfer\fund_transfer_screen.dart

Metric Value
Total Lines 2039
Code Lines 1677
Comment Lines 235
Comment Density 14.0%
Total Issues 306

Issues Found:

Duplication
Line 103
Duplicate code found (appears 2 times)
senderNumber: Env.otpSenderName,
Duplication
Line 907
Duplicate code found (appears 2 times)
senderNumber: Env.otpSenderName,
Duplication
Line 129
Duplicate code found (appears 8 times)
_progressNotifier.value = true;
Duplication
Line 770
Duplicate code found (appears 8 times)
_progressNotifier.value = true;
Duplication
Line 1613
Duplicate code found (appears 8 times)
_progressNotifier.value = true;
Duplication
Line 1659
Duplicate code found (appears 8 times)
_progressNotifier.value = true;
Duplication
Line 1758
Duplicate code found (appears 8 times)
_progressNotifier.value = true;
Duplication
Line 1835
Duplicate code found (appears 8 times)
_progressNotifier.value = true;
Duplication
Line 1854
Duplicate code found (appears 8 times)
_progressNotifier.value = true;
Duplication
Line 1912
Duplicate code found (appears 8 times)
_progressNotifier.value = true;
Duplication
Line 140
Duplicate code found (appears 2 times)
_beneficiaryAccountNoController.clear();
Duplication
Line 471
Duplicate code found (appears 2 times)
_beneficiaryAccountNoController.clear();
Duplication
Line 146
Duplicate code found (appears 2 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 996
Duplicate code found (appears 2 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 238
Duplicate code found (appears 2 times)
_payingSavedPayee = null;
Duplication
Line 512
Duplicate code found (appears 2 times)
_payingSavedPayee = null;
Duplication
Line 243
Duplicate code found (appears 3 times)
_pendingPayee = null;
Duplication
Line 510
Duplicate code found (appears 3 times)
_pendingPayee = null;
Duplication
Line 614
Duplicate code found (appears 3 times)
_pendingPayee = null;
Duplication
Line 248
Duplicate code found (appears 2 times)
_payeeAddingBank = null;
Duplication
Line 511
Duplicate code found (appears 2 times)
_payeeAddingBank = null;
Duplication
Line 265
Duplicate code found (appears 2 times)
TransferSourceSelection(
Duplication
Line 300
Duplicate code found (appears 2 times)
TransferSourceSelection(
Duplication
Line 266
Duplicate code found (appears 2 times)
selectSourceNotifier: _selectSourceNotifier,
Duplication
Line 301
Duplicate code found (appears 2 times)
selectSourceNotifier: _selectSourceNotifier,
Duplication
Line 267
Duplicate code found (appears 2 times)
onSelected: (PaymentSource source) {
Duplication
Line 303
Duplicate code found (appears 2 times)
onSelected: (PaymentSource source) {
Duplication
Line 269
Duplicate code found (appears 2 times)
_selectedSource = source;
Duplication
Line 320
Duplicate code found (appears 2 times)
_selectedSource = source;
Duplication
Line 299
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 352
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 365
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 354
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(horizontal: Ui.getPadding(2)),
Duplication
Line 627
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(horizontal: Ui.getPadding(2)),
Duplication
Line 356
Duplicate code found (appears 6 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 382
Duplicate code found (appears 6 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 547
Duplicate code found (appears 6 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 632
Duplicate code found (appears 6 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 1074
Duplicate code found (appears 6 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 1385
Duplicate code found (appears 6 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 359
Duplicate code found (appears 2 times)
alignment: Alignment.centerLeft,
Duplication
Line 821
Duplicate code found (appears 2 times)
alignment: Alignment.centerLeft,
Duplication
Line 361
Duplicate code found (appears 2 times)
getLangStr(context, "pay_to"),
Duplication
Line 1017
Duplicate code found (appears 2 times)
getLangStr(context, "pay_to"),
Duplication
Line 362
Duplicate code found (appears 3 times)
style: TextStyles.defaultText,
Duplication
Line 645
Duplicate code found (appears 3 times)
style: TextStyles.defaultText,
Duplication
Line 1018
Duplicate code found (appears 3 times)
style: TextStyles.defaultText,
Duplication
Line 367
Duplicate code found (appears 11 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 638
Duplicate code found (appears 11 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 647
Duplicate code found (appears 11 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 679
Duplicate code found (appears 11 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 705
Duplicate code found (appears 11 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 723
Duplicate code found (appears 11 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 743
Duplicate code found (appears 11 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 799
Duplicate code found (appears 11 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 1116
Duplicate code found (appears 11 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 1139
Duplicate code found (appears 11 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 1167
Duplicate code found (appears 11 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 369
Duplicate code found (appears 8 times)
padding: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 438
Duplicate code found (appears 8 times)
padding: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 534
Duplicate code found (appears 8 times)
padding: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 866
Duplicate code found (appears 8 times)
padding: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 929
Duplicate code found (appears 8 times)
padding: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 1008
Duplicate code found (appears 8 times)
padding: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 1057
Duplicate code found (appears 8 times)
padding: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 1169
Duplicate code found (appears 8 times)
padding: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 370
Duplicate code found (appears 4 times)
decoration: BoxDecoration(
Duplication
Line 523
Duplicate code found (appears 4 times)
decoration: BoxDecoration(
Duplication
Line 857
Duplicate code found (appears 4 times)
decoration: BoxDecoration(
Duplication
Line 1046
Duplicate code found (appears 4 times)
decoration: BoxDecoration(
Duplication
Line 371
Duplicate code found (appears 3 times)
color: AppColors.white,
Duplication
Line 524
Duplicate code found (appears 3 times)
color: AppColors.white,
Duplication
Line 1047
Duplicate code found (appears 3 times)
color: AppColors.white,
Duplication
Line 374
Duplicate code found (appears 3 times)
color: AppColors.grey3,
Duplication
Line 527
Duplicate code found (appears 3 times)
color: AppColors.grey3,
Duplication
Line 1050
Duplicate code found (appears 3 times)
color: AppColors.grey3,
Duplication
Line 385
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 399
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 413
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 1014
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 389
Duplicate code found (appears 2 times)
getLangReplaced(context, "lkr_replace", [
Duplication
Line 403
Duplicate code found (appears 2 times)
getLangReplaced(context, "lkr_replace", [
Duplication
Line 390
Duplicate code found (appears 2 times)
AmountUtil.formatDoubleAmount(
Duplication
Line 404
Duplicate code found (appears 2 times)
AmountUtil.formatDoubleAmount(
Duplication
Line 397
Duplicate code found (appears 2 times)
Divider(height: Ui.getPadding(4)),
Duplication
Line 411
Duplicate code found (appears 2 times)
Divider(height: Ui.getPadding(4)),
Duplication
Line 440
Duplicate code found (appears 2 times)
title: getLangStr(context, "transfer"),
Duplication
Line 931
Duplicate code found (appears 2 times)
title: getLangStr(context, "transfer"),
Duplication
Line 454
Duplicate code found (appears 3 times)
_sendFundTransferOtp(
Duplication
Line 899
Duplicate code found (appears 3 times)
_sendFundTransferOtp(
Duplication
Line 1887
Duplicate code found (appears 3 times)
_sendFundTransferOtp(
Duplication
Line 481
Duplicate code found (appears 3 times)
_loadingNotifier.value = true;
Duplication
Line 1560
Duplicate code found (appears 3 times)
_loadingNotifier.value = true;
Duplication
Line 1971
Duplicate code found (appears 3 times)
_loadingNotifier.value = true;
Duplication
Line 503
Duplicate code found (appears 2 times)
onComplete: () => _loadingNotifier.value = false,
Duplication
Line 1984
Duplicate code found (appears 2 times)
onComplete: () => _loadingNotifier.value = false,
Duplication
Line 505
Duplicate code found (appears 2 times)
if (_payeeAddingBank?.isOwnBank ?? false) {
Duplication
Line 1536
Duplicate code found (appears 2 times)
if (_payeeAddingBank?.isOwnBank ?? false) {
Duplication
Line 531
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(Ui.getRadius(1.5)),
Duplication
Line 1054
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(Ui.getRadius(1.5)),
Duplication
Line 538
Duplicate code found (appears 2 times)
radius: ScreenUtil.width * 0.085,
Duplication
Line 1061
Duplicate code found (appears 2 times)
radius: ScreenUtil.width * 0.085,
Duplication
Line 539
Duplicate code found (appears 2 times)
backgroundColor: AppColors.white,
Duplication
Line 1062
Duplicate code found (appears 2 times)
backgroundColor: AppColors.white,
Duplication
Line 544
Duplicate code found (appears 4 times)
SizedBox(width: Ui.getPadding(3)),
Duplication
Line 599
Duplicate code found (appears 4 times)
SizedBox(width: Ui.getPadding(3)),
Duplication
Line 1071
Duplicate code found (appears 4 times)
SizedBox(width: Ui.getPadding(3)),
Duplication
Line 1111
Duplicate code found (appears 4 times)
SizedBox(width: Ui.getPadding(3)),
Duplication
Line 548
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 1075
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 552
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.5,
Duplication
Line 562
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.5,
Duplication
Line 577
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.5,
Duplication
Line 565
Duplicate code found (appears 3 times)
builder: (context, snapshot) {
Duplication
Line 1087
Duplicate code found (appears 3 times)
builder: (context, snapshot) {
Duplication
Line 1463
Duplicate code found (appears 3 times)
builder: (context, snapshot) {
Duplication
Line 590
Duplicate code found (appears 2 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 914
Duplicate code found (appears 2 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 685
Duplicate code found (appears 2 times)
inputFormatters: [AlphaNumericInputFormatter()],
Duplication
Line 728
Duplicate code found (appears 2 times)
inputFormatters: [AlphaNumericInputFormatter()],
Duplication
Line 687
Duplicate code found (appears 3 times)
keyboardType: TextInputType.name,
Duplication
Line 730
Duplicate code found (appears 3 times)
keyboardType: TextInputType.name,
Duplication
Line 1148
Duplicate code found (appears 3 times)
keyboardType: TextInputType.name,
Duplication
Line 706
Duplicate code found (appears 3 times)
ValueListenableBuilder(
Duplication
Line 1117
Duplicate code found (appears 3 times)
ValueListenableBuilder(
Duplication
Line 1368
Duplicate code found (appears 3 times)
ValueListenableBuilder(
Duplication
Line 707
Duplicate code found (appears 2 times)
valueListenable: _amountFiledValueNotifier,
Duplication
Line 1118
Duplicate code found (appears 2 times)
valueListenable: _amountFiledValueNotifier,
Duplication
Line 708
Duplicate code found (appears 2 times)
builder: (context, amountLimit, child) {
Duplication
Line 1119
Duplicate code found (appears 2 times)
builder: (context, amountLimit, child) {
Duplication
Line 709
Duplicate code found (appears 2 times)
return AmountInputField(
Duplication
Line 1120
Duplicate code found (appears 2 times)
return AmountInputField(
Duplication
Line 712
Duplicate code found (appears 2 times)
minAmount: amountLimit["min_amount"],
Duplication
Line 1134
Duplicate code found (appears 2 times)
minAmount: amountLimit["min_amount"],
Duplication
Line 713
Duplicate code found (appears 2 times)
maxAmount: amountLimit["max_amount"],
Duplication
Line 1135
Duplicate code found (appears 2 times)
maxAmount: amountLimit["max_amount"],
Duplication
Line 727
Duplicate code found (appears 2 times)
title: getLangStr(context, "remarks"),
Duplication
Line 1142
Duplicate code found (appears 2 times)
title: getLangStr(context, "remarks"),
Duplication
Line 731
Duplicate code found (appears 2 times)
hint: getLangStr(context, "transfer_remarks"),
Duplication
Line 1143
Duplicate code found (appears 2 times)
hint: getLangStr(context, "transfer_remarks"),
Duplication
Line 745
Duplicate code found (appears 2 times)
title: getLangStr(context, "submit"),
Duplication
Line 1171
Duplicate code found (appears 2 times)
title: getLangStr(context, "submit"),
Duplication
Line 761
Duplicate code found (appears 3 times)
final transferAmount = AmountUtil.formatValidDouble(
Duplication
Line 1182
Duplicate code found (appears 3 times)
final transferAmount = AmountUtil.formatValidDouble(
Duplication
Line 1201
Duplicate code found (appears 3 times)
final transferAmount = AmountUtil.formatValidDouble(
Duplication
Line 762
Duplicate code found (appears 2 times)
_transferAmountController.text,
Duplication
Line 1202
Duplicate code found (appears 2 times)
_transferAmountController.text,
Duplication
Line 764
Duplicate code found (appears 2 times)
_ftDto.amount = transferAmount;
Duplication
Line 1186
Duplicate code found (appears 2 times)
_ftDto.amount = transferAmount;
Duplication
Line 767
Duplicate code found (appears 2 times)
_ftDto.payeeId = payee.id;
Duplication
Line 784
Duplicate code found (appears 2 times)
_ftDto.payeeId = payee.id;
Duplication
Line 774
Duplicate code found (appears 3 times)
onSuccess: (int sessionId, minAmount, maxAmount) {
Duplication
Line 1216
Duplicate code found (appears 3 times)
onSuccess: (int sessionId, minAmount, maxAmount) {
Duplication
Line 1239
Duplicate code found (appears 3 times)
onSuccess: (int sessionId, minAmount, maxAmount) {
Duplication
Line 775
Duplicate code found (appears 3 times)
final Map amountLimit = {
Duplication
Line 1218
Duplicate code found (appears 3 times)
final Map amountLimit = {
Duplication
Line 1240
Duplicate code found (appears 3 times)
final Map amountLimit = {
Duplication
Line 776
Duplicate code found (appears 3 times)
"min_amount": minAmount,
Duplication
Line 1219
Duplicate code found (appears 3 times)
"min_amount": minAmount,
Duplication
Line 1241
Duplicate code found (appears 3 times)
"min_amount": minAmount,
Duplication
Line 777
Duplicate code found (appears 3 times)
"max_amount": maxAmount,
Duplication
Line 1220
Duplicate code found (appears 3 times)
"max_amount": maxAmount,
Duplication
Line 1242
Duplicate code found (appears 3 times)
"max_amount": maxAmount,
Duplication
Line 779
Duplicate code found (appears 3 times)
_amountFiledValueNotifier.value = amountLimit;
Duplication
Line 1222
Duplicate code found (appears 3 times)
_amountFiledValueNotifier.value = amountLimit;
Duplication
Line 1244
Duplicate code found (appears 3 times)
_amountFiledValueNotifier.value = amountLimit;
Duplication
Line 780
Duplicate code found (appears 3 times)
WidgetsBinding.instance.addPostFrameCallback((_) {
Duplication
Line 1223
Duplicate code found (appears 3 times)
WidgetsBinding.instance.addPostFrameCallback((_) {
Duplication
Line 1245
Duplicate code found (appears 3 times)
WidgetsBinding.instance.addPostFrameCallback((_) {
Duplication
Line 787
Duplicate code found (appears 2 times)
_pendingPayee = payee;
Duplication
Line 1227
Duplicate code found (appears 2 times)
_pendingPayee = payee;
Duplication
Line 788
Duplicate code found (appears 2 times)
_pendingPayee!.sessionKey = sessionKey;
Duplication
Line 1228
Duplicate code found (appears 2 times)
_pendingPayee!.sessionKey = sessionKey;
Duplication
Line 816
Duplicate code found (appears 3 times)
height: Ui.getPadding(3),
Duplication
Line 826
Duplicate code found (appears 3 times)
height: Ui.getPadding(3),
Duplication
Line 1037
Duplicate code found (appears 3 times)
height: Ui.getPadding(3),
Duplication
Line 862
Duplicate code found (appears 2 times)
color: AppColors.red,
Duplication
Line 879
Duplicate code found (appears 2 times)
color: AppColors.red,
Duplication
Line 916
Duplicate code found (appears 2 times)
decoration: TextDecoration.underline,
Duplication
Line 1395
Duplicate code found (appears 2 times)
decoration: TextDecoration.underline,
Duplication
Line 1067
Duplicate code found (appears 2 times)
errorImagePath: AppIcons.commonNotFoundImage,
Duplication
Line 1500
Duplicate code found (appears 2 times)
errorImagePath: AppIcons.commonNotFoundImage,
Duplication
Line 1122
Duplicate code found (appears 2 times)
suffixIcon: Visibility(
Duplication
Line 1149
Duplicate code found (appears 2 times)
suffixIcon: Visibility(
Duplication
Line 1125
Duplicate code found (appears 2 times)
fillColor: MaterialStateProperty.all(
Duplication
Line 1152
Duplicate code found (appears 2 times)
fillColor: MaterialStateProperty.all(
Duplication
Line 1130
Duplicate code found (appears 2 times)
shape: const CircleBorder(),
Duplication
Line 1157
Duplicate code found (appears 2 times)
shape: const CircleBorder(),
Duplication
Line 1133
Duplicate code found (appears 2 times)
onChanged: (value) => setState(() {}),
Duplication
Line 1160
Duplicate code found (appears 2 times)
onChanged: (value) => setState(() {}),
Duplication
Line 1224
Duplicate code found (appears 2 times)
if (_paySavedPayeeFormKey.currentState?.validate() ??
Duplication
Line 1246
Duplicate code found (appears 2 times)
if (_paySavedPayeeFormKey.currentState?.validate() ??
Duplication
Line 1280
Duplicate code found (appears 4 times)
padding: EdgeInsets.symmetric(
Duplication
Line 1320
Duplicate code found (appears 4 times)
padding: EdgeInsets.symmetric(
Duplication
Line 1373
Duplicate code found (appears 4 times)
padding: EdgeInsets.symmetric(
Duplication
Line 1484
Duplicate code found (appears 4 times)
padding: EdgeInsets.symmetric(
Duplication
Line 1283
Duplicate code found (appears 2 times)
child: const CenterLoader(),
Duplication
Line 1376
Duplicate code found (appears 2 times)
child: const CenterLoader(),
Duplication
Line 1298
Duplicate code found (appears 3 times)
vertical: Ui.getPadding(1),
Duplication
Line 1322
Duplicate code found (appears 3 times)
vertical: Ui.getPadding(1),
Duplication
Line 1486
Duplicate code found (appears 3 times)
vertical: Ui.getPadding(1),
Duplication
Line 1321
Duplicate code found (appears 2 times)
horizontal: Ui.getPadding(0),
Duplication
Line 1485
Duplicate code found (appears 2 times)
horizontal: Ui.getPadding(0),
Duplication
Line 1330
Duplicate code found (appears 2 times)
childAspectRatio: 0.7,
Duplication
Line 1491
Duplicate code found (appears 2 times)
childAspectRatio: 0.7,
Duplication
Line 1332
Duplicate code found (appears 2 times)
itemBuilder: (context, index) {
Duplication
Line 1493
Duplicate code found (appears 2 times)
itemBuilder: (context, index) {
Duplication
Line 1334
Duplicate code found (appears 2 times)
? filteredPayees.elementAt(index)
Duplication
Line 1338
Duplicate code found (appears 2 times)
? filteredPayees.elementAt(index)
Duplication
Line 1335
Duplicate code found (appears 2 times)
: payeeList.elementAt(index);
Duplication
Line 1339
Duplicate code found (appears 2 times)
: payeeList.elementAt(index);
Duplication
Line 1345
Duplicate code found (appears 2 times)
return CircularGridItem(
Duplication
Line 1496
Duplicate code found (appears 2 times)
return CircularGridItem(
Duplication
Line 1389
Duplicate code found (appears 2 times)
color: AppColors.orange1,
Duplication
Line 1394
Duplicate code found (appears 2 times)
color: AppColors.orange1,
Duplication
Line 1579
Duplicate code found (appears 7 times)
onFail: (title, message, data) {
Duplication
Line 1602
Duplicate code found (appears 7 times)
onFail: (title, message, data) {
Duplication
Line 1628
Duplicate code found (appears 7 times)
onFail: (title, message, data) {
Duplication
Line 1725
Duplicate code found (appears 7 times)
onFail: (title, message, data) {
Duplication
Line 1820
Duplicate code found (appears 7 times)
onFail: (title, message, data) {
Duplication
Line 1842
Duplicate code found (appears 7 times)
onFail: (title, message, data) {
Duplication
Line 1866
Duplicate code found (appears 7 times)
onFail: (title, message, data) {
Duplication
Line 1580
Duplicate code found (appears 8 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1603
Duplicate code found (appears 8 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1630
Duplicate code found (appears 8 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1726
Duplicate code found (appears 8 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1822
Duplicate code found (appears 8 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1843
Duplicate code found (appears 8 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1868
Duplicate code found (appears 8 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1964
Duplicate code found (appears 8 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1611
Duplicate code found (appears 2 times)
void Function(SavedPayee payee, String sessionKey)? onSuccess,
Duplication
Line 1852
Duplicate code found (appears 2 times)
void Function(SavedPayee payee, String sessionKey)? onSuccess,
Duplication
Line 1619
Duplicate code found (appears 2 times)
onSuccess: (SavedPayee? payee, String sessionKey) {
Duplication
Line 1858
Duplicate code found (appears 2 times)
onSuccess: (SavedPayee? payee, String sessionKey) {
Duplication
Line 1621
Duplicate code found (appears 2 times)
AlertUtil.showError(context, "invalid_payee");
Duplication
Line 1860
Duplicate code found (appears 2 times)
AlertUtil.showError(context, "invalid_payee");
Duplication
Line 1625
Duplicate code found (appears 8 times)
_progressNotifier.value = false;
Duplication
Line 1629
Duplicate code found (appears 8 times)
_progressNotifier.value = false;
Duplication
Line 1729
Duplicate code found (appears 8 times)
_progressNotifier.value = false;
Duplication
Line 1825
Duplicate code found (appears 8 times)
_progressNotifier.value = false;
Duplication
Line 1846
Duplicate code found (appears 8 times)
_progressNotifier.value = false;
Duplication
Line 1867
Duplicate code found (appears 8 times)
_progressNotifier.value = false;
Duplication
Line 1921
Duplicate code found (appears 8 times)
_progressNotifier.value = false;
Duplication
Line 1955
Duplicate code found (appears 8 times)
_progressNotifier.value = false;
Duplication
Line 1626
Duplicate code found (appears 2 times)
onSuccess?.call(payee, sessionKey);
Duplication
Line 1864
Duplicate code found (appears 2 times)
onSuccess?.call(payee, sessionKey);
Duplication
Line 1641
Duplicate code found (appears 2 times)
bool selfAccount = false,
Duplication
Line 1739
Duplicate code found (appears 2 times)
bool selfAccount = false,
Duplication
Line 1643
Duplicate code found (appears 2 times)
String? validationString;
Duplication
Line 1742
Duplicate code found (appears 2 times)
String? validationString;
Duplication
Line 1646
Duplicate code found (appears 2 times)
final int payeeId = payee.id ?? 0;
Duplication
Line 1745
Duplicate code found (appears 2 times)
final int payeeId = payee.id ?? 0;
Duplication
Line 1648
Duplicate code found (appears 2 times)
validationString = "invalid_payee";
Duplication
Line 1747
Duplicate code found (appears 2 times)
validationString = "invalid_payee";
Duplication
Line 1650
Duplicate code found (appears 2 times)
validationString = "please_select_source";
Duplication
Line 1749
Duplicate code found (appears 2 times)
validationString = "please_select_source";
Duplication
Line 1654
Duplicate code found (appears 2 times)
if (validationString?.isNotEmpty ?? false) {
Duplication
Line 1753
Duplicate code found (appears 2 times)
if (validationString?.isNotEmpty ?? false) {
Duplication
Line 1655
Duplicate code found (appears 2 times)
AlertUtil.showError(context, validationString!);
Duplication
Line 1754
Duplicate code found (appears 2 times)
AlertUtil.showError(context, validationString!);
Duplication
Line 1663
Duplicate code found (appears 2 times)
amount: _ftDto.amount ?? 0,
Duplication
Line 1764
Duplicate code found (appears 2 times)
amount: _ftDto.amount ?? 0,
Duplication
Line 1666
Duplicate code found (appears 2 times)
remarks: _ftDto.remarks,
Duplication
Line 1767
Duplicate code found (appears 2 times)
remarks: _ftDto.remarks,
Duplication
Line 1677
Duplicate code found (appears 2 times)
final int thisSessionId = sessionId ?? 0;
Duplication
Line 1779
Duplicate code found (appears 2 times)
final int thisSessionId = sessionId ?? 0;
Duplication
Line 1678
Duplicate code found (appears 2 times)
if (thisSessionId <= 0) {
Duplication
Line 1780
Duplicate code found (appears 2 times)
if (thisSessionId <= 0) {
Duplication
Line 1679
Duplicate code found (appears 4 times)
AlertUtil.showError(context, "invalid_transfer_session");
Duplication
Line 1781
Duplicate code found (appears 4 times)
AlertUtil.showError(context, "invalid_transfer_session");
Duplication
Line 1832
Duplicate code found (appears 4 times)
AlertUtil.showError(context, "invalid_transfer_session");
Duplication
Line 1909
Duplicate code found (appears 4 times)
AlertUtil.showError(context, "invalid_transfer_session");
Duplication
Line 1717
Duplicate code found (appears 2 times)
_ftDto.minAmount = minAmount;
Duplication
Line 1811
Duplicate code found (appears 2 times)
_ftDto.minAmount = minAmount;
Duplication
Line 1718
Duplicate code found (appears 2 times)
_ftDto.maxAmount = maxAmount;
Duplication
Line 1812
Duplicate code found (appears 2 times)
_ftDto.maxAmount = maxAmount;
Duplication
Line 1721
Duplicate code found (appears 2 times)
_ftDto.sessionId = thisSessionId;
Duplication
Line 1815
Duplicate code found (appears 2 times)
_ftDto.sessionId = thisSessionId;
Duplication
Line 1831
Duplicate code found (appears 2 times)
if (_ftDto.sessionId == null) {
Duplication
Line 1908
Duplicate code found (appears 2 times)
if (_ftDto.sessionId == null) {
Duplication
Line 1838
Duplicate code found (appears 2 times)
sessionId: _ftDto.sessionId!,
Duplication
Line 1915
Duplicate code found (appears 2 times)
sessionId: _ftDto.sessionId!,
Duplication
Line 1919
Duplicate code found (appears 2 times)
FundTransferSuccessDetail? details;
Duplication
Line 1943
Duplicate code found (appears 2 times)
FundTransferSuccessDetail? details;
Duplication
Line 1923
Duplicate code found (appears 2 times)
details = FundTransferSuccessDetail.fromJson(
Duplication
Line 1945
Duplicate code found (appears 2 times)
details = FundTransferSuccessDetail.fromJson(
Duplication
Line 1927
Duplicate code found (appears 2 times)
details.transactionStatus = TransactionStatus.success;
Duplication
Line 1932
Duplicate code found (appears 2 times)
details.transactionStatus = TransactionStatus.success;
Duplication
Line 1934
Duplicate code found (appears 2 times)
getAppState(context).statePointBalance = await _fetchPointsBalance();
Duplication
Line 1962
Duplicate code found (appears 2 times)
getAppState(context).statePointBalance = await _fetchPointsBalance();
Duplication
Line 1935
Duplicate code found (appears 2 times)
onSuccess.call(details..payeeId = _ftDto.payeeId);
Duplication
Line 1953
Duplicate code found (appears 2 times)
onSuccess.call(details..payeeId = _ftDto.payeeId);
Unused Import
Line 1
Unused import: dart:async
import "dart:async";
Long Method
Line 231
Method is too long (59 lines)
Widget build(BuildContext context) {
Dead Code
Line 121
Private method '_onAccountNumberFieldFocusChanged' is never called
void _onAccountNumberFieldFocusChanged() {
Potential Bug
Line 236
Null check without null-aware operator (?.)
if (_payingSavedPayee != null) {
Potential Bug
Line 240
Null check without null-aware operator (?.)
} else if (_pendingPayee != null) {
Potential Bug
Line 245
Null check without null-aware operator (?.)
} else if (_payeeAddingBank != null) {
Potential Bug
Line 258
Null check without null-aware operator (?.)
: (_pendingPayee != null
Potential Bug
Line 260
Null check without null-aware operator (?.)
: (_payeeAddingBank != null
Potential Bug
Line 262
Null check without null-aware operator (?.)
: (_payingSavedPayee != null
Potential Bug
Line 975
Null check without null-aware operator (?.)
return (amount != null &&
Potential Bug
Line 1467
Null check without null-aware operator (?.)
if (_selectedSource != null) {
Potential Bug
Line 1941
Null check without null-aware operator (?.)
if ((data["data"]["code"] != null) &&
Potential Bug
Line 1995
Null check without null-aware operator (?.)
// final bool matches = (payee.nickname != null &&
Potential Bug
Line 1999
Null check without null-aware operator (?.)
// (payee.nickname != null &&

C:\Users\PM_User\Documents\upay-mobile\lib\screens\fund_transfer\fund_transfer_success_screen.dart

Metric Value
Total Lines 285
Code Lines 256
Comment Lines 13
Comment Density 5.1%
Total Issues 18

Issues Found:

Duplication
Line 51
Duplicate code found (appears 2 times)
_showSavePayeeDialog();
Duplication
Line 171
Duplicate code found (appears 2 times)
_showSavePayeeDialog();
Duplication
Line 65
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 84
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 74
Duplicate code found (appears 3 times)
textAlign: TextAlign.center,
Duplication
Line 89
Duplicate code found (appears 3 times)
textAlign: TextAlign.center,
Duplication
Line 106
Duplicate code found (appears 3 times)
textAlign: TextAlign.center,
Duplication
Line 75
Duplicate code found (appears 3 times)
style: const TextStyle(
Duplication
Line 90
Duplicate code found (appears 3 times)
style: const TextStyle(
Duplication
Line 107
Duplicate code found (appears 3 times)
style: const TextStyle(
Duplication
Line 77
Duplicate code found (appears 3 times)
fontWeight: FontWeight.w500,
Duplication
Line 92
Duplicate code found (appears 3 times)
fontWeight: FontWeight.w500,
Duplication
Line 109
Duplicate code found (appears 3 times)
fontWeight: FontWeight.w500,
Duplication
Line 116
Duplicate code found (appears 2 times)
if (widget.fundTransferSuccessDetail?.transactionStatus ==
Duplication
Line 127
Duplicate code found (appears 2 times)
if (widget.fundTransferSuccessDetail?.transactionStatus ==
Duplication
Line 121
Duplicate code found (appears 2 times)
fontWeight: FontWeight.bold,
Duplication
Line 132
Duplicate code found (appears 2 times)
fontWeight: FontWeight.bold,
Long Method
Line 57
Method is too long (141 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\fund_transfer\update_payee_screen.dart

Metric Value
Total Lines 272
Code Lines 248
Comment Lines 1
Comment Density 0.4%
Total Issues 31

Issues Found:

Duplication
Line 74
Duplicate code found (appears 2 times)
_progressNotifier.value = true;
Duplication
Line 142
Duplicate code found (appears 2 times)
_progressNotifier.value = true;
Duplication
Line 79
Duplicate code found (appears 2 times)
accountId: payeeId.toString(),
Duplication
Line 101
Duplicate code found (appears 2 times)
accountId: payeeId.toString(),
Duplication
Line 83
Duplicate code found (appears 4 times)
pushScreen(context, ScreenRoutes.toFundTransferScreen);
Duplication
Line 105
Duplicate code found (appears 4 times)
pushScreen(context, ScreenRoutes.toFundTransferScreen);
Duplication
Line 127
Duplicate code found (appears 4 times)
pushScreen(context, ScreenRoutes.toFundTransferScreen);
Duplication
Line 149
Duplicate code found (appears 4 times)
pushScreen(context, ScreenRoutes.toFundTransferScreen);
Duplication
Line 84
Duplicate code found (appears 3 times)
AlertUtil.showSuccess(context, "payee_update_success");
Duplication
Line 106
Duplicate code found (appears 3 times)
AlertUtil.showSuccess(context, "payee_update_success");
Duplication
Line 128
Duplicate code found (appears 3 times)
AlertUtil.showSuccess(context, "payee_update_success");
Duplication
Line 86
Duplicate code found (appears 4 times)
onFailed: (title, message, data) {
Duplication
Line 108
Duplicate code found (appears 4 times)
onFailed: (title, message, data) {
Duplication
Line 130
Duplicate code found (appears 4 times)
onFailed: (title, message, data) {
Duplication
Line 152
Duplicate code found (appears 4 times)
onFailed: (title, message, data) {
Duplication
Line 89
Duplicate code found (appears 4 times)
message ?? ErrorMessages.unexpectedError,
Duplication
Line 111
Duplicate code found (appears 4 times)
message ?? ErrorMessages.unexpectedError,
Duplication
Line 133
Duplicate code found (appears 4 times)
message ?? ErrorMessages.unexpectedError,
Duplication
Line 155
Duplicate code found (appears 4 times)
message ?? ErrorMessages.unexpectedError,
Duplication
Line 93
Duplicate code found (appears 2 times)
onCompleted: () => _progressNotifier.value = false,
Duplication
Line 115
Duplicate code found (appears 2 times)
onCompleted: () => _progressNotifier.value = false,
Duplication
Line 122
Duplicate code found (appears 2 times)
payeeId: _payee?.id ?? -1,
Duplication
Line 146
Duplicate code found (appears 2 times)
payeeId: _payee?.id ?? -1,
Duplication
Line 137
Duplicate code found (appears 2 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 159
Duplicate code found (appears 2 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 187
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 202
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 216
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 241
Duplicate code found (appears 2 times)
SizedBox(width: Ui.getPadding(3)),
Duplication
Line 265
Duplicate code found (appears 2 times)
SizedBox(width: Ui.getPadding(3)),
Dead Code
Line 51
Private method '_onEditPayeeTap' is never called
void _onEditPayeeTap() {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\mobile_payments\mobile_payment_confirmation.dart

Metric Value
Total Lines 298
Code Lines 0
Comment Lines 279
Comment Density 0.0%
Total Issues 5

Issues Found:

Potential Bug
Line 71
Null check without null-aware operator (?.)
// if (biller.fieldData != null) {
Potential Bug
Line 116
Null check without null-aware operator (?.)
// if ((f.minLength != null) &&
Potential Bug
Line 145
Null check without null-aware operator (?.)
// (accStatus != null)
Potential Bug
Line 181
Null check without null-aware operator (?.)
// if ((f.minLength != null) &&
Potential Bug
Line 225
Null check without null-aware operator (?.)
// (_billerPaymentLimitModel != null)

C:\Users\PM_User\Documents\upay-mobile\lib\screens\mobile_payments\mobile_payment_screen.dart

Metric Value
Total Lines 397
Code Lines 347
Comment Lines 23
Comment Density 6.6%
Total Issues 33

Issues Found:

Duplication
Line 82
Duplicate code found (appears 3 times)
_validateAccountNumber(
Duplication
Line 146
Duplicate code found (appears 3 times)
_validateAccountNumber(
Duplication
Line 159
Duplicate code found (appears 3 times)
_validateAccountNumber(
Duplication
Line 83
Duplicate code found (appears 4 times)
_mobileNumberController.text,
Duplication
Line 147
Duplicate code found (appears 4 times)
_mobileNumberController.text,
Duplication
Line 160
Duplicate code found (appears 4 times)
_mobileNumberController.text,
Duplication
Line 323
Duplicate code found (appears 4 times)
_mobileNumberController.text,
Duplication
Line 84
Duplicate code found (appears 3 times)
_mobilePaymentDetail?.billerId,
Duplication
Line 148
Duplicate code found (appears 3 times)
_mobilePaymentDetail?.billerId,
Duplication
Line 161
Duplicate code found (appears 3 times)
_mobilePaymentDetail?.billerId,
Duplication
Line 110
Duplicate code found (appears 3 times)
_progressNotifier.value = true;
Duplication
Line 311
Duplicate code found (appears 3 times)
_progressNotifier.value = true;
Duplication
Line 358
Duplicate code found (appears 3 times)
_progressNotifier.value = true;
Duplication
Line 124
Duplicate code found (appears 3 times)
onFail: (title, message, data) {
Duplication
Line 345
Duplicate code found (appears 3 times)
onFail: (title, message, data) {
Duplication
Line 391
Duplicate code found (appears 3 times)
onFail: (title, message, data) {
Duplication
Line 129
Duplicate code found (appears 2 times)
_progressNotifier.value = false;
Duplication
Line 346
Duplicate code found (appears 2 times)
_progressNotifier.value = false;
Duplication
Line 145
Duplicate code found (appears 2 times)
if (_mobileNumberFieldFocued) {
Duplication
Line 158
Duplicate code found (appears 2 times)
if (_mobileNumberFieldFocued) {
Duplication
Line 172
Duplicate code found (appears 2 times)
progressNotifier: _progressNotifier,
Duplication
Line 186
Duplicate code found (appears 2 times)
progressNotifier: _progressNotifier,
Duplication
Line 224
Duplicate code found (appears 2 times)
SizedBox(width: Ui.getPadding(2)),
Duplication
Line 230
Duplicate code found (appears 2 times)
SizedBox(width: Ui.getPadding(2)),
Duplication
Line 239
Duplicate code found (appears 2 times)
ValueListenableBuilder(
Duplication
Line 288
Duplicate code found (appears 2 times)
ValueListenableBuilder(
Duplication
Line 279
Duplicate code found (appears 2 times)
const ColumnSpacer(2),
Duplication
Line 301
Duplicate code found (appears 2 times)
const ColumnSpacer(2),
Duplication
Line 347
Duplicate code found (appears 2 times)
AlertUtil.showError(context, message);
Duplication
Line 392
Duplicate code found (appears 2 times)
AlertUtil.showError(context, message);
Long Method
Line 62
Method is too long (26 lines)
void initState() {
Long Method
Line 135
Method is too long (46 lines)
Widget build(BuildContext context) {
Potential Bug
Line 268
Null check without null-aware operator (?.)
suffixIcon: (accState != null)

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_account\about_me_view.dart

Metric Value
Total Lines 268
Code Lines 244
Comment Lines 2
Comment Density 0.8%
Total Issues 13

Issues Found:

Duplication
Line 61
Duplicate code found (appears 2 times)
widget.progressNotifier.value = true;
Duplication
Line 250
Duplicate code found (appears 2 times)
widget.progressNotifier.value = true;
Duplication
Line 74
Duplicate code found (appears 2 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 261
Duplicate code found (appears 2 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 85
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(
Duplication
Line 112
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(
Duplication
Line 86
Duplicate code found (appears 2 times)
horizontal: Ui.getPadding(2),
Duplication
Line 113
Duplicate code found (appears 2 times)
horizontal: Ui.getPadding(2),
Duplication
Line 87
Duplicate code found (appears 2 times)
vertical: Ui.getPadding(2),
Duplication
Line 114
Duplicate code found (appears 2 times)
vertical: Ui.getPadding(2),
Duplication
Line 89
Duplicate code found (appears 2 times)
child: _getSectionItem(
Duplication
Line 116
Duplicate code found (appears 2 times)
child: _getSectionItem(
Dead Code
Line 48
Private method '_onChangePasswordTap' is never called
void _onChangePasswordTap() {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_account\my_account_screen.dart

Metric Value
Total Lines 52
Code Lines 45
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_account\my_devices_view.dart

Metric Value
Total Lines 180
Code Lines 167
Comment Lines 0
Comment Density 0.0%
Total Issues 22

Issues Found:

Duplication
Line 36
Duplicate code found (appears 2 times)
Widget build(BuildContext context) {
Duplication
Line 128
Duplicate code found (appears 2 times)
Widget build(BuildContext context) {
Duplication
Line 55
Duplicate code found (appears 2 times)
if (device == null) {
Duplication
Line 129
Duplicate code found (appears 2 times)
if (device == null) {
Duplication
Line 59
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(horizontal: Ui.getPadding(2)),
Duplication
Line 87
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(horizontal: Ui.getPadding(2)),
Duplication
Line 61
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 162
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 62
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 163
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 64
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 71
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 77
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 67
Duplicate code found (appears 3 times)
style: TextStyles.defaultMediumText,
Duplication
Line 82
Duplicate code found (appears 3 times)
style: TextStyles.defaultMediumText,
Duplication
Line 168
Duplicate code found (appears 3 times)
style: TextStyles.defaultMediumText,
Duplication
Line 85
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 95
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 135
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 148
Duplicate code found (appears 2 times)
color: AppColors.white,
Long Method
Line 36
Method is too long (65 lines)
Widget build(BuildContext context) {
Long Method
Line 128
Method is too long (51 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_account\transfer_settings_description_view.dart

Metric Value
Total Lines 91
Code Lines 88
Comment Lines 0
Comment Density 0.0%
Total Issues 4

Issues Found:

Duplication
Line 24
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 51
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 54
Duplicate code found (appears 2 times)
width: Ui.getPadding(25),
Duplication
Line 73
Duplicate code found (appears 2 times)
width: Ui.getPadding(25),

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_account\transfer_settings_form_view.dart

Metric Value
Total Lines 135
Code Lines 123
Comment Lines 0
Comment Density 0.0%
Total Issues 1

Issues Found:

Long Method
Line 57
Method is too long (50 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_account\transfer_settings_initial_view.dart

Metric Value
Total Lines 46
Code Lines 40
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_payees\edit_payee_screen.dart

Metric Value
Total Lines 157
Code Lines 142
Comment Lines 0
Comment Density 0.0%
Total Issues 11

Issues Found:

Duplication
Line 85
Duplicate code found (appears 2 times)
title: getLangStr(context, "edit_payee"),
Duplication
Line 145
Duplicate code found (appears 2 times)
title: getLangStr(context, "edit_payee"),
Duplication
Line 94
Duplicate code found (appears 2 times)
height: Ui.getPadding(2),
Duplication
Line 104
Duplicate code found (appears 2 times)
height: Ui.getPadding(2),
Duplication
Line 97
Duplicate code found (appears 4 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 107
Duplicate code found (appears 4 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 124
Duplicate code found (appears 4 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 143
Duplicate code found (appears 4 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 108
Duplicate code found (appears 2 times)
child: LabelTextField(
Duplication
Line 125
Duplicate code found (appears 2 times)
child: LabelTextField(
Dead Code
Line 39
Private method '_onUpdatePayeeTap' is never called
void _onUpdatePayeeTap() {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_payees\enter_payee_details_form_view.dart

Metric Value
Total Lines 292
Code Lines 263
Comment Lines 2
Comment Density 0.8%
Total Issues 34

Issues Found:

Duplication
Line 120
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 233
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 126
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 276
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 128
Duplicate code found (appears 4 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 138
Duplicate code found (appears 4 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 240
Duplicate code found (appears 4 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 278
Duplicate code found (appears 4 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 135
Duplicate code found (appears 2 times)
height: Ui.getPadding(2),
Duplication
Line 237
Duplicate code found (appears 2 times)
height: Ui.getPadding(2),
Duplication
Line 169
Duplicate code found (appears 2 times)
maxLength: f.maxLength,
Duplication
Line 202
Duplicate code found (appears 2 times)
maxLength: f.maxLength,
Duplication
Line 170
Duplicate code found (appears 2 times)
validator: f.required
Duplication
Line 204
Duplicate code found (appears 2 times)
validator: f.required
Duplication
Line 174
Duplicate code found (appears 4 times)
return getLangReplaced(
Duplication
Line 184
Duplicate code found (appears 4 times)
return getLangReplaced(
Duplication
Line 209
Duplicate code found (appears 4 times)
return getLangReplaced(
Duplication
Line 219
Duplicate code found (appears 4 times)
return getLangReplaced(
Duplication
Line 181
Duplicate code found (appears 2 times)
if ((f.minLength != null) &&
Duplication
Line 216
Duplicate code found (appears 2 times)
if ((f.minLength != null) &&
Duplication
Line 182
Duplicate code found (appears 2 times)
((text?.length ?? 0) <
Duplication
Line 217
Duplicate code found (appears 2 times)
((text?.length ?? 0) <
Duplication
Line 183
Duplicate code found (appears 2 times)
(f.minLength ?? 0))) {
Duplication
Line 218
Duplicate code found (appears 2 times)
(f.minLength ?? 0))) {
Duplication
Line 186
Duplicate code found (appears 2 times)
"invalid_min_length",
Duplication
Line 221
Duplicate code found (appears 2 times)
"invalid_min_length",
Duplication
Line 187
Duplicate code found (appears 2 times)
[f.minLength!.toString()],
Duplication
Line 222
Duplicate code found (appears 2 times)
[f.minLength!.toString()],
Duplication
Line 244
Duplicate code found (appears 2 times)
getLangStr(context, "enter_payee_name"),
Duplication
Line 246
Duplicate code found (appears 2 times)
getLangStr(context, "enter_payee_name"),
Long Method
Line 114
Method is too long (177 lines)
Widget build(BuildContext context) {
Dead Code
Line 46
Private method '_onAddPaymentTap' is never called
void _onAddPaymentTap() {
Potential Bug
Line 181
Null check without null-aware operator (?.)
if ((f.minLength != null) &&
Potential Bug
Line 216
Null check without null-aware operator (?.)
if ((f.minLength != null) &&

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_payees\my_payees_screen.dart

Metric Value
Total Lines 420
Code Lines 334
Comment Lines 28
Comment Density 8.4%
Total Issues 36

Issues Found:

Duplication
Line 40
Duplicate code found (appears 2 times)
GenericValueNotifier(MyPayeesViews.noPayees);
Duplication
Line 42
Duplicate code found (appears 2 times)
GenericValueNotifier(MyPayeesViews.noPayees);
Duplication
Line 92
Duplicate code found (appears 2 times)
_myPayeesViewsNotifier.value = MyPayeesViews.enterPayeeDetailsForm;
Duplication
Line 359
Duplicate code found (appears 2 times)
_myPayeesViewsNotifier.value = MyPayeesViews.enterPayeeDetailsForm;
Duplication
Line 96
Duplicate code found (appears 3 times)
_progressNotifier.value = true;
Duplication
Line 113
Duplicate code found (appears 3 times)
_progressNotifier.value = true;
Duplication
Line 198
Duplicate code found (appears 3 times)
_progressNotifier.value = true;
Duplication
Line 101
Duplicate code found (appears 4 times)
_progressNotifier.value = false;
Duplication
Line 155
Duplicate code found (appears 4 times)
_progressNotifier.value = false;
Duplication
Line 181
Duplicate code found (appears 4 times)
_progressNotifier.value = false;
Duplication
Line 217
Duplicate code found (appears 4 times)
_progressNotifier.value = false;
Duplication
Line 130
Duplicate code found (appears 4 times)
if (widget.myPayeesDetail?.biller != null) {
Duplication
Line 244
Duplicate code found (appears 4 times)
if (widget.myPayeesDetail?.biller != null) {
Duplication
Line 323
Duplicate code found (appears 4 times)
if (widget.myPayeesDetail?.biller != null) {
Duplication
Line 357
Duplicate code found (appears 4 times)
if (widget.myPayeesDetail?.biller != null) {
Duplication
Line 166
Duplicate code found (appears 2 times)
savedPayeePage: pageNo,
Duplication
Line 202
Duplicate code found (appears 2 times)
savedPayeePage: pageNo,
Duplication
Line 167
Duplicate code found (appears 2 times)
onSuccess: (List payees, String sessionKey, bool hasmore) {
Duplication
Line 203
Duplicate code found (appears 2 times)
onSuccess: (List payees, String sessionKey, bool hasmore) {
Duplication
Line 169
Duplicate code found (appears 2 times)
_hasNextFtPage = hasmore;
Duplication
Line 205
Duplicate code found (appears 2 times)
_hasNextFtPage = hasmore;
Duplication
Line 176
Duplicate code found (appears 2 times)
_addedSavedPayees.addAll(payees);
Duplication
Line 212
Duplicate code found (appears 2 times)
_addedSavedPayees.addAll(payees);
Duplication
Line 180
Duplicate code found (appears 2 times)
onFail: (title, message, data) {
Duplication
Line 216
Duplicate code found (appears 2 times)
onFail: (title, message, data) {
Duplication
Line 193
Duplicate code found (appears 2 times)
_getCCTransferPayees();
Duplication
Line 213
Duplicate code found (appears 2 times)
_getCCTransferPayees();
Duplication
Line 246
Duplicate code found (appears 2 times)
moveToScreen(context, ScreenRoutes.toHomeScreen);
Duplication
Line 258
Duplicate code found (appears 2 times)
moveToScreen(context, ScreenRoutes.toHomeScreen);
Duplication
Line 376
Duplicate code found (appears 3 times)
progressNotifier: _progressNotifier,
Duplication
Line 387
Duplicate code found (appears 3 times)
progressNotifier: _progressNotifier,
Duplication
Line 402
Duplicate code found (appears 3 times)
progressNotifier: _progressNotifier,
Long Method
Line 343
Method is too long (22 lines)
void initState() {
Dead Code
Line 227
Private method '_onMyPayeesViewChanged' is never called
void _onMyPayeesViewChanged() {
Dead Code
Line 235
Private method '_onMyTransferPayeesViewChanged' is never called
void _onMyTransferPayeesViewChanged() {
Dead Code
Line 243
Private method '_onBackButtonPressed' is never called
void _onBackButtonPressed() {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_payees\my_payees_view.dart

Metric Value
Total Lines 62
Code Lines 56
Comment Lines 3
Comment Density 5.4%
Total Issues 4

Issues Found:

Duplication
Line 46
Duplicate code found (appears 2 times)
progressNotifier: progressNotifier,
Duplication
Line 52
Duplicate code found (appears 2 times)
progressNotifier: progressNotifier,
Long Method
Line 33
Method is too long (28 lines)
Widget build(BuildContext context) {
Potential Bug
Line 42
Null check without null-aware operator (?.)
selectedBiller != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_payees\no_payee_selected_view.dart

Metric Value
Total Lines 35
Code Lines 32
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_payees\selected_payees_summary_view.dart

Metric Value
Total Lines 144
Code Lines 134
Comment Lines 0
Comment Density 0.0%
Total Issues 7

Issues Found:

Duplication
Line 95
Duplicate code found (appears 2 times)
color: AppColors.orange1,
Duplication
Line 100
Duplicate code found (appears 2 times)
color: AppColors.orange1,
Long Method
Line 53
Method is too long (63 lines)
Widget build(BuildContext context) {
Dead Code
Line 118
Private method '_updateSearchResults' is never called
void _updateSearchResults(String value) {
Potential Bug
Line 125
Null check without null-aware operator (?.)
final bool matches = (payee.nickname != null &&
Potential Bug
Line 129
Null check without null-aware operator (?.)
(payee.billerName != null &&
Potential Bug
Line 131
Null check without null-aware operator (?.)
(payee.accountNumber != null &&

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_payees\transfer_payees_view.dart

Metric Value
Total Lines 68
Code Lines 57
Comment Lines 8
Comment Density 14.0%
Total Issues 8

Issues Found:

Duplication
Line 48
Duplicate code found (appears 2 times)
return TransferPayeesSelectedPayeesSummaryView(
Duplication
Line 54
Duplicate code found (appears 2 times)
return TransferPayeesSelectedPayeesSummaryView(
Duplication
Line 49
Duplicate code found (appears 2 times)
addedPayees: addedPayees,
Duplication
Line 55
Duplicate code found (appears 2 times)
addedPayees: addedPayees,
Duplication
Line 51
Duplicate code found (appears 2 times)
progressNotifier: progressNotifier,
Duplication
Line 57
Duplicate code found (appears 2 times)
progressNotifier: progressNotifier,
Long Method
Line 35
Method is too long (32 lines)
Widget build(BuildContext context) {
Potential Bug
Line 47
Null check without null-aware operator (?.)
selectedTransferPayee != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_wallet\added_bank_account_info_view.dart

Metric Value
Total Lines 367
Code Lines 341
Comment Lines 5
Comment Density 1.5%
Total Issues 51

Issues Found:

Duplication
Line 61
Duplicate code found (appears 2 times)
widget.progressNotifier.value = true;
Duplication
Line 351
Duplicate code found (appears 2 times)
widget.progressNotifier.value = true;
Duplication
Line 63
Duplicate code found (appears 2 times)
if (widget.isOther) {
Duplication
Line 181
Duplicate code found (appears 2 times)
if (widget.isOther) {
Duplication
Line 66
Duplicate code found (appears 4 times)
accountId: (widget.bankAccount?.id ?? 0).toString(),
Duplication
Line 82
Duplicate code found (appears 4 times)
accountId: (widget.bankAccount?.id ?? 0).toString(),
Duplication
Line 184
Duplicate code found (appears 4 times)
accountId: (widget.bankAccount?.id ?? 0).toString(),
Duplication
Line 213
Duplicate code found (appears 4 times)
accountId: (widget.bankAccount?.id ?? 0).toString(),
Duplication
Line 67
Duplicate code found (appears 2 times)
nickname: enteredAccountName,
Duplication
Line 83
Duplicate code found (appears 2 times)
nickname: enteredAccountName,
Duplication
Line 68
Duplicate code found (appears 2 times)
onSuccess: (accountId) async =>
Duplication
Line 84
Duplicate code found (appears 2 times)
onSuccess: (accountId) async =>
Duplication
Line 69
Duplicate code found (appears 2 times)
await _onAccountUpdateSuccess(accountId),
Duplication
Line 85
Duplicate code found (appears 2 times)
await _onAccountUpdateSuccess(accountId),
Duplication
Line 70
Duplicate code found (appears 4 times)
onFailed: (title, message, data) {
Duplication
Line 86
Duplicate code found (appears 4 times)
onFailed: (title, message, data) {
Duplication
Line 201
Duplicate code found (appears 4 times)
onFailed: (title, message, data) {
Duplication
Line 228
Duplicate code found (appears 4 times)
onFailed: (title, message, data) {
Duplication
Line 73
Duplicate code found (appears 4 times)
message ?? ErrorMessages.unexpectedError,
Duplication
Line 89
Duplicate code found (appears 4 times)
message ?? ErrorMessages.unexpectedError,
Duplication
Line 204
Duplicate code found (appears 4 times)
message ?? ErrorMessages.unexpectedError,
Duplication
Line 231
Duplicate code found (appears 4 times)
message ?? ErrorMessages.unexpectedError,
Duplication
Line 77
Duplicate code found (appears 3 times)
onCompleted: () => widget.progressNotifier.value = false,
Duplication
Line 93
Duplicate code found (appears 3 times)
onCompleted: () => widget.progressNotifier.value = false,
Duplication
Line 235
Duplicate code found (appears 3 times)
onCompleted: () => widget.progressNotifier.value = false,
Duplication
Line 111
Duplicate code found (appears 2 times)
widget.progressNotifier.value = false;
Duplication
Line 363
Duplicate code found (appears 2 times)
widget.progressNotifier.value = false;
Duplication
Line 135
Duplicate code found (appears 4 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 254
Duplicate code found (appears 4 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 260
Duplicate code found (appears 4 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 286
Duplicate code found (appears 4 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 185
Duplicate code found (appears 2 times)
onSuccess: (deletedAccountId) async {
Duplication
Line 214
Duplicate code found (appears 2 times)
onSuccess: (deletedAccountId) async {
Duplication
Line 186
Duplicate code found (appears 2 times)
AlertUtil.showSuccess(
Duplication
Line 215
Duplicate code found (appears 2 times)
AlertUtil.showSuccess(
Duplication
Line 188
Duplicate code found (appears 2 times)
"account_delete_success",
Duplication
Line 217
Duplicate code found (appears 2 times)
"account_delete_success",
Duplication
Line 191
Duplicate code found (appears 2 times)
moveToScreen(context, ScreenRoutes.toHomeScreen);
Duplication
Line 220
Duplicate code found (appears 2 times)
moveToScreen(context, ScreenRoutes.toHomeScreen);
Duplication
Line 194
Duplicate code found (appears 2 times)
ScreenRoutes.toMyWalletScreen,
Duplication
Line 223
Duplicate code found (appears 2 times)
ScreenRoutes.toMyWalletScreen,
Duplication
Line 288
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(
Duplication
Line 331
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(
Duplication
Line 289
Duplicate code found (appears 2 times)
horizontal: Ui.getPadding(2),
Duplication
Line 332
Duplicate code found (appears 2 times)
horizontal: Ui.getPadding(2),
Duplication
Line 292
Duplicate code found (appears 3 times)
width: Ui.getPadding(45.5),
Duplication
Line 311
Duplicate code found (appears 3 times)
width: Ui.getPadding(45.5),
Duplication
Line 335
Duplicate code found (appears 3 times)
width: Ui.getPadding(45.5),
Dead Code
Line 51
Private method '_onUpdateAccountTap' is never called
void _onUpdateAccountTap() {
Dead Code
Line 108
Private method '_onDeleteAccountTap' is never called
void _onDeleteAccountTap(BankAccount account) {
Potential Bug
Line 255
Null check without null-aware operator (?.)
widget.bankAccount != null

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_wallet\added_sdb_accounts_view.dart

Metric Value
Total Lines 196
Code Lines 179
Comment Lines 3
Comment Density 1.7%
Total Issues 8

Issues Found:

Duplication
Line 106
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 134
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 156
Duplicate code found (appears 2 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 165
Duplicate code found (appears 2 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 160
Duplicate code found (appears 2 times)
textAlign: TextAlign.center,
Duplication
Line 170
Duplicate code found (appears 2 times)
textAlign: TextAlign.center,
Potential Bug
Line 137
Null check without null-aware operator (?.)
: (account.icon != null
Potential Bug
Line 162
Null check without null-aware operator (?.)
account != null

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_wallet\add_your_sdb_account_form_view.dart

Metric Value
Total Lines 437
Code Lines 407
Comment Lines 1
Comment Density 0.2%
Total Issues 41

Issues Found:

Duplication
Line 104
Duplicate code found (appears 3 times)
width: Ui.getPadding(45.5),
Duplication
Line 128
Duplicate code found (appears 3 times)
width: Ui.getPadding(45.5),
Duplication
Line 150
Duplicate code found (appears 3 times)
width: Ui.getPadding(45.5),
Duplication
Line 105
Duplicate code found (appears 3 times)
child: LabelTextField(
Duplication
Line 129
Duplicate code found (appears 3 times)
child: LabelTextField(
Duplication
Line 151
Duplicate code found (appears 3 times)
child: LabelTextField(
Duplication
Line 112
Duplicate code found (appears 2 times)
if (value == null || value.isEmpty) {
Duplication
Line 159
Duplicate code found (appears 2 times)
if (value == null || value.isEmpty) {
Duplication
Line 125
Duplicate code found (appears 2 times)
height: Ui.getPadding(3.2),
Duplication
Line 147
Duplicate code found (appears 2 times)
height: Ui.getPadding(3.2),
Duplication
Line 225
Duplicate code found (appears 2 times)
horizontal: Ui.getPadding(2),
Duplication
Line 229
Duplicate code found (appears 2 times)
horizontal: Ui.getPadding(2),
Duplication
Line 267
Duplicate code found (appears 3 times)
mobileNumber: mobileNumber,
Duplication
Line 374
Duplicate code found (appears 3 times)
mobileNumber: mobileNumber,
Duplication
Line 404
Duplicate code found (appears 3 times)
mobileNumber: mobileNumber,
Duplication
Line 268
Duplicate code found (appears 4 times)
accountId: accountId,
Duplication
Line 306
Duplicate code found (appears 4 times)
accountId: accountId,
Duplication
Line 373
Duplicate code found (appears 4 times)
accountId: accountId,
Duplication
Line 403
Duplicate code found (appears 4 times)
accountId: accountId,
Duplication
Line 309
Duplicate code found (appears 2 times)
_otpController.clear();
Duplication
Line 319
Duplicate code found (appears 2 times)
_otpController.clear();
Duplication
Line 318
Duplicate code found (appears 4 times)
onFail: (title, message, data) {
Duplication
Line 355
Duplicate code found (appears 4 times)
onFail: (title, message, data) {
Duplication
Line 380
Duplicate code found (appears 4 times)
onFail: (title, message, data) {
Duplication
Line 427
Duplicate code found (appears 4 times)
onFail: (title, message, data) {
Duplication
Line 320
Duplicate code found (appears 2 times)
AlertUtil.showError(context, message);
Duplication
Line 381
Duplicate code found (appears 2 times)
AlertUtil.showError(context, message);
Duplication
Line 337
Duplicate code found (appears 3 times)
widget.progressNotifier.value = true;
Duplication
Line 370
Duplicate code found (appears 3 times)
widget.progressNotifier.value = true;
Duplication
Line 416
Duplicate code found (appears 3 times)
widget.progressNotifier.value = true;
Duplication
Line 352
Duplicate code found (appears 2 times)
_startTimer(accountId: accountId, mobileNumber: mobileNumber);
Duplication
Line 378
Duplicate code found (appears 2 times)
_startTimer(accountId: accountId, mobileNumber: mobileNumber);
Duplication
Line 353
Duplicate code found (appears 2 times)
_promptOtpDialog(accountId, mobileNumber);
Duplication
Line 377
Duplicate code found (appears 2 times)
_promptOtpDialog(accountId, mobileNumber);
Duplication
Line 357
Duplicate code found (appears 2 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 428
Duplicate code found (appears 2 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 360
Duplicate code found (appears 2 times)
onComplete: () => widget.progressNotifier.value = false,
Duplication
Line 383
Duplicate code found (appears 2 times)
onComplete: () => widget.progressNotifier.value = false,
Unused Import
Line 1
Unused import: dart:async
import "dart:async";
Long Method
Line 84
Method is too long (102 lines)
Widget build(BuildContext context) {
Long Method
Line 415
Method is too long (21 lines)
void getAccountMaxLength() {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_wallet\my_wallet_screen.dart

Metric Value
Total Lines 169
Code Lines 141
Comment Lines 0
Comment Density 0.0%
Total Issues 8

Issues Found:

Duplication
Line 140
Duplicate code found (appears 3 times)
progressNotifier: _progressNotifier,
Duplication
Line 148
Duplicate code found (appears 3 times)
progressNotifier: _progressNotifier,
Duplication
Line 154
Duplicate code found (appears 3 times)
progressNotifier: _progressNotifier,
Long Method
Line 104
Method is too long (23 lines)
void initState() {
Long Method
Line 137
Method is too long (25 lines)
Widget build(BuildContext context) {
Dead Code
Line 48
Private method '_onSdbAccountViewsChanged' is never called
void _onSdbAccountViewsChanged() {
Dead Code
Line 55
Private method '_onOtherAccountsChanged' is never called
void _onOtherAccountsChanged() {
Dead Code
Line 65
Private method '_onBackButtonPressed' is never called
void _onBackButtonPressed() {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_wallet\other_accounts_view.dart

Metric Value
Total Lines 1012
Code Lines 884
Comment Lines 79
Comment Density 8.9%
Total Issues 134

Issues Found:

Duplication
Line 85
Duplicate code found (appears 3 times)
widget.viewNotifier.value = OtherAccountsViews.viewDeterminer;
Duplication
Line 149
Duplicate code found (appears 3 times)
widget.viewNotifier.value = OtherAccountsViews.viewDeterminer;
Duplication
Line 962
Duplicate code found (appears 3 times)
widget.viewNotifier.value = OtherAccountsViews.viewDeterminer;
Duplication
Line 86
Duplicate code found (appears 3 times)
_fetcBankAccountsFuture = _fetchBankAccounts();
Duplication
Line 967
Duplicate code found (appears 3 times)
_fetcBankAccountsFuture = _fetchBankAccounts();
Duplication
Line 1000
Duplicate code found (appears 3 times)
_fetcBankAccountsFuture = _fetchBankAccounts();
Duplication
Line 153
Duplicate code found (appears 2 times)
ScreenRoutes.toMyWalletScreen,
Duplication
Line 848
Duplicate code found (appears 2 times)
ScreenRoutes.toMyWalletScreen,
Duplication
Line 154
Duplicate code found (appears 2 times)
arguments: MyWalletsScreenRouteData(1),
Duplication
Line 849
Duplicate code found (appears 2 times)
arguments: MyWalletsScreenRouteData(1),
Duplication
Line 183
Duplicate code found (appears 3 times)
decoration: BoxDecoration(
Duplication
Line 354
Duplicate code found (appears 3 times)
decoration: BoxDecoration(
Duplication
Line 420
Duplicate code found (appears 3 times)
decoration: BoxDecoration(
Duplication
Line 184
Duplicate code found (appears 4 times)
color: AppColors.white,
Duplication
Line 362
Duplicate code found (appears 4 times)
color: AppColors.white,
Duplication
Line 411
Duplicate code found (appears 4 times)
color: AppColors.white,
Duplication
Line 439
Duplicate code found (appears 4 times)
color: AppColors.white,
Duplication
Line 195
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 415
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 796
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 232
Duplicate code found (appears 2 times)
color: AppColors.green,
Duplication
Line 377
Duplicate code found (appears 2 times)
color: AppColors.green,
Duplication
Line 234
Duplicate code found (appears 3 times)
SizedBox(width: Ui.getPadding(1)),
Duplication
Line 244
Duplicate code found (appears 3 times)
SizedBox(width: Ui.getPadding(1)),
Duplication
Line 814
Duplicate code found (appears 3 times)
SizedBox(width: Ui.getPadding(1)),
Duplication
Line 250
Duplicate code found (appears 6 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 256
Duplicate code found (appears 6 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 282
Duplicate code found (appears 6 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 296
Duplicate code found (appears 6 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 522
Duplicate code found (appears 6 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 581
Duplicate code found (appears 6 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 352
Duplicate code found (appears 2 times)
padding: EdgeInsets.all(Ui.getPadding(1)),
Duplication
Line 444
Duplicate code found (appears 2 times)
padding: EdgeInsets.all(Ui.getPadding(1)),
Duplication
Line 360
Duplicate code found (appears 5 times)
textAlign: TextAlign.center,
Duplication
Line 465
Duplicate code found (appears 5 times)
textAlign: TextAlign.center,
Duplication
Line 475
Duplicate code found (appears 5 times)
textAlign: TextAlign.center,
Duplication
Line 627
Duplicate code found (appears 5 times)
textAlign: TextAlign.center,
Duplication
Line 660
Duplicate code found (appears 5 times)
textAlign: TextAlign.center,
Duplication
Line 461
Duplicate code found (appears 2 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 470
Duplicate code found (appears 2 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 499
Duplicate code found (appears 8 times)
widget.progressNotifier.value = true;
Duplication
Line 702
Duplicate code found (appears 8 times)
widget.progressNotifier.value = true;
Duplication
Line 737
Duplicate code found (appears 8 times)
widget.progressNotifier.value = true;
Duplication
Line 760
Duplicate code found (appears 8 times)
widget.progressNotifier.value = true;
Duplication
Line 835
Duplicate code found (appears 8 times)
widget.progressNotifier.value = true;
Duplication
Line 868
Duplicate code found (appears 8 times)
widget.progressNotifier.value = true;
Duplication
Line 948
Duplicate code found (appears 8 times)
widget.progressNotifier.value = true;
Duplication
Line 984
Duplicate code found (appears 8 times)
widget.progressNotifier.value = true;
Duplication
Line 508
Duplicate code found (appears 3 times)
_accountOtpController.clear();
Duplication
Line 964
Duplicate code found (appears 3 times)
_accountOtpController.clear();
Duplication
Line 997
Duplicate code found (appears 3 times)
_accountOtpController.clear();
Duplication
Line 511
Duplicate code found (appears 4 times)
AlertUtil.showDialog(
Duplication
Line 603
Duplicate code found (appears 4 times)
AlertUtil.showDialog(
Duplication
Line 642
Duplicate code found (appears 4 times)
AlertUtil.showDialog(
Duplication
Line 782
Duplicate code found (appears 4 times)
AlertUtil.showDialog(
Duplication
Line 513
Duplicate code found (appears 3 times)
isDismissible: false,
Duplication
Line 609
Duplicate code found (appears 3 times)
isDismissible: false,
Duplication
Line 647
Duplicate code found (appears 3 times)
isDismissible: false,
Duplication
Line 585
Duplicate code found (appears 8 times)
onFail: (title, message, data) {
Duplication
Line 722
Duplicate code found (appears 8 times)
onFail: (title, message, data) {
Duplication
Line 750
Duplicate code found (appears 8 times)
onFail: (title, message, data) {
Duplication
Line 772
Duplicate code found (appears 8 times)
onFail: (title, message, data) {
Duplication
Line 853
Duplicate code found (appears 8 times)
onFail: (title, message, data) {
Duplication
Line 939
Duplicate code found (appears 8 times)
onFail: (title, message, data) {
Duplication
Line 971
Duplicate code found (appears 8 times)
onFail: (title, message, data) {
Duplication
Line 1004
Duplicate code found (appears 8 times)
onFail: (title, message, data) {
Duplication
Line 586
Duplicate code found (appears 8 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 723
Duplicate code found (appears 8 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 751
Duplicate code found (appears 8 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 773
Duplicate code found (appears 8 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 854
Duplicate code found (appears 8 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 940
Duplicate code found (appears 8 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 972
Duplicate code found (appears 8 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 1005
Duplicate code found (appears 8 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 589
Duplicate code found (appears 11 times)
widget.progressNotifier.value = false;
Duplication
Line 679
Duplicate code found (appears 11 times)
widget.progressNotifier.value = false;
Duplication
Line 706
Duplicate code found (appears 11 times)
widget.progressNotifier.value = false;
Duplication
Line 726
Duplicate code found (appears 11 times)
widget.progressNotifier.value = false;
Duplication
Line 754
Duplicate code found (appears 11 times)
widget.progressNotifier.value = false;
Duplication
Line 776
Duplicate code found (appears 11 times)
widget.progressNotifier.value = false;
Duplication
Line 857
Duplicate code found (appears 11 times)
widget.progressNotifier.value = false;
Duplication
Line 877
Duplicate code found (appears 11 times)
widget.progressNotifier.value = false;
Duplication
Line 906
Duplicate code found (appears 11 times)
widget.progressNotifier.value = false;
Duplication
Line 975
Duplicate code found (appears 11 times)
widget.progressNotifier.value = false;
Duplication
Line 1008
Duplicate code found (appears 11 times)
widget.progressNotifier.value = false;
Duplication
Line 598
Duplicate code found (appears 3 times)
bool fromPendingVerifyFlow = false,
Duplication
Line 637
Duplicate code found (appears 3 times)
bool fromPendingVerifyFlow = false,
Duplication
Line 866
Duplicate code found (appears 3 times)
bool fromPendingVerifyFlow = false,
Duplication
Line 600
Duplicate code found (appears 2 times)
if (consent?.isEmpty ?? true) {
Duplication
Line 639
Duplicate code found (appears 2 times)
if (consent?.isEmpty ?? true) {
Duplication
Line 601
Duplicate code found (appears 2 times)
consent = Constants.justPayConsent;
Duplication
Line 640
Duplicate code found (appears 2 times)
consent = Constants.justPayConsent;
Duplication
Line 605
Duplicate code found (appears 2 times)
title: "justpay_terms_n_condtions",
Duplication
Line 644
Duplicate code found (appears 2 times)
title: "justpay_terms_n_condtions",
Duplication
Line 606
Duplicate code found (appears 2 times)
buttonText: "i_agree",
Duplication
Line 645
Duplicate code found (appears 2 times)
buttonText: "i_agree",
Duplication
Line 607
Duplicate code found (appears 2 times)
cancelText: "Cancel",
Duplication
Line 646
Duplicate code found (appears 2 times)
cancelText: "Cancel",
Duplication
Line 612
Duplicate code found (appears 2 times)
_signAndActivateAccount(
Duplication
Line 650
Duplicate code found (appears 2 times)
_signAndActivateAccount(
Duplication
Line 616
Duplicate code found (appears 2 times)
fromPendingVerifyFlow: fromPendingVerifyFlow,
Duplication
Line 654
Duplicate code found (appears 2 times)
fromPendingVerifyFlow: fromPendingVerifyFlow,
Duplication
Line 676
Duplicate code found (appears 2 times)
final LpResponse validateMobileResponse =
Duplication
Line 703
Duplicate code found (appears 2 times)
final LpResponse validateMobileResponse =
Duplication
Line 677
Duplicate code found (appears 2 times)
await LpFlutterPlugin.validateMobile();
Duplication
Line 704
Duplicate code found (appears 2 times)
await LpFlutterPlugin.validateMobile();
Duplication
Line 678
Duplicate code found (appears 2 times)
if (ResponseStatus.SUCCESS != validateMobileResponse.status) {
Duplication
Line 705
Duplicate code found (appears 2 times)
if (ResponseStatus.SUCCESS != validateMobileResponse.status) {
Duplication
Line 680
Duplicate code found (appears 2 times)
AlertUtil.showError(context, validateMobileResponse.message);
Duplication
Line 707
Duplicate code found (appears 2 times)
AlertUtil.showError(context, validateMobileResponse.message);
Duplication
Line 686
Duplicate code found (appears 2 times)
_accountOtpController.text,
Duplication
Line 694
Duplicate code found (appears 2 times)
_accountOtpController.text,
Duplication
Line 716
Duplicate code found (appears 2 times)
_showAccountConsentAddAccount(
Duplication
Line 744
Duplicate code found (appears 2 times)
_showAccountConsentAddAccount(
Duplication
Line 880
Duplicate code found (appears 2 times)
"Account adding failed. Please try again.",
Duplication
Line 909
Duplicate code found (appears 2 times)
"Account adding failed. Please try again.",
Duplication
Line 888
Duplicate code found (appears 2 times)
if (Env.bypassLcSdkCheck) {
Duplication
Line 917
Duplicate code found (appears 2 times)
if (Env.bypassLcSdkCheck) {
Duplication
Line 952
Duplicate code found (appears 2 times)
message: signedMessage,
Duplication
Line 988
Duplicate code found (appears 2 times)
message: signedMessage,
Duplication
Line 954
Duplicate code found (appears 2 times)
if (getAppState(context).user?.email?.isEmpty ?? true) {
Duplication
Line 990
Duplicate code found (appears 2 times)
if (getAppState(context).user?.email?.isEmpty ?? true) {
Duplication
Line 955
Duplicate code found (appears 2 times)
getAppState(context).user?.email = _emailController.text;
Duplication
Line 991
Duplicate code found (appears 2 times)
getAppState(context).user?.email = _emailController.text;
Duplication
Line 961
Duplicate code found (appears 2 times)
AlertUtil.showSuccess(context, "account_adding_success").then((_) {
Duplication
Line 994
Duplicate code found (appears 2 times)
AlertUtil.showSuccess(context, "account_adding_success").then((_) {
Duplication
Line 965
Duplicate code found (appears 2 times)
_accountNoController.clear();
Duplication
Line 998
Duplicate code found (appears 2 times)
_accountNoController.clear();
Unused Import
Line 1
Unused import: dart:async
import "dart:async";
Unused Import
Line 2
Unused import: dart:io
import "dart:io";
Long Method
Line 118
Method is too long (28 lines)
Widget build(BuildContext context) {
Dead Code
Line 148
Private method '_onAccountUpdateSuccess' is never called
void _onAccountUpdateSuccess() {
Potential Bug
Line 442
Null check without null-aware operator (?.)
: (account.icon != null
Potential Bug
Line 467
Null check without null-aware operator (?.)
account != null

C:\Users\PM_User\Documents\upay-mobile\lib\screens\my_wallet\sdb_accounts_view.dart

Metric Value
Total Lines 122
Code Lines 105
Comment Lines 2
Comment Density 1.9%
Total Issues 14

Issues Found:

Duplication
Line 43
Duplicate code found (appears 2 times)
widget.progressNotifier.value = false;
Duplication
Line 59
Duplicate code found (appears 2 times)
widget.progressNotifier.value = false;
Duplication
Line 44
Duplicate code found (appears 2 times)
setState(() => _determiningInitialView = false);
Duplication
Line 60
Duplicate code found (appears 2 times)
setState(() => _determiningInitialView = false);
Duplication
Line 72
Duplicate code found (appears 2 times)
_determineInitialView();
Duplication
Line 79
Duplicate code found (appears 2 times)
_determineInitialView();
Duplication
Line 96
Duplicate code found (appears 2 times)
progressNotifier: widget.progressNotifier,
Duplication
Line 109
Duplicate code found (appears 2 times)
progressNotifier: widget.progressNotifier,
Duplication
Line 103
Duplicate code found (appears 2 times)
SdbAccountViews.addYourSdbAccountFormView,
Duplication
Line 117
Duplicate code found (appears 2 times)
SdbAccountViews.addYourSdbAccountFormView,
Long Method
Line 84
Method is too long (37 lines)
Widget build(BuildContext context) {
Dead Code
Line 65
Private method '_onAddedBankAccountTap' is never called
void _onAddedBankAccountTap(BankAccount? bankAccount) {
Dead Code
Line 70
Private method '_onAccountUpdateSuccess' is never called
void _onAccountUpdateSuccess() {
Potential Bug
Line 41
Null check without null-aware operator (?.)
if (widget.initialSdbAccountView != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\notification\notification_screen.dart

Metric Value
Total Lines 186
Code Lines 168
Comment Lines 9
Comment Density 5.4%
Total Issues 7

Issues Found:

Duplication
Line 31
Duplicate code found (appears 2 times)
_progressNotifier.value = true;
Duplication
Line 171
Duplicate code found (appears 2 times)
_progressNotifier.value = true;
Duplication
Line 36
Duplicate code found (appears 2 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 183
Duplicate code found (appears 2 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 113
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.1),
Duplication
Line 124
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.1),
Long Method
Line 44
Method is too long (121 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\notification\show_notification.dart

Metric Value
Total Lines 25
Code Lines 23
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\parts\value_notifier.dart

Metric Value
Total Lines 5
Code Lines 4
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\qr_payments\qr_payment_confirmation_screen.dart

Metric Value
Total Lines 348
Code Lines 302
Comment Lines 18
Comment Density 6.0%
Total Issues 17

Issues Found:

Duplication
Line 187
Duplicate code found (appears 2 times)
height: Ui.getPadding(2.5),
Duplication
Line 295
Duplicate code found (appears 2 times)
height: Ui.getPadding(2.5),
Duplication
Line 191
Duplicate code found (appears 4 times)
width: ScreenUtil.width * Ui.getPadding(0.1125),
Duplication
Line 210
Duplicate code found (appears 4 times)
width: ScreenUtil.width * Ui.getPadding(0.1125),
Duplication
Line 241
Duplicate code found (appears 4 times)
width: ScreenUtil.width * Ui.getPadding(0.1125),
Duplication
Line 287
Duplicate code found (appears 4 times)
width: ScreenUtil.width * Ui.getPadding(0.1125),
Duplication
Line 192
Duplicate code found (appears 2 times)
child: LabelTextField(
Duplication
Line 242
Duplicate code found (appears 2 times)
child: LabelTextField(
Duplication
Line 206
Duplicate code found (appears 2 times)
height: Ui.getPadding(2),
Duplication
Line 236
Duplicate code found (appears 2 times)
height: Ui.getPadding(2),
Duplication
Line 317
Duplicate code found (appears 3 times)
height: Ui.getPadding(3),
Duplication
Line 325
Duplicate code found (appears 3 times)
height: Ui.getPadding(3),
Duplication
Line 335
Duplicate code found (appears 3 times)
height: Ui.getPadding(3),
Long Method
Line 125
Method is too long (27 lines)
void initState() {
Long Method
Line 309
Method is too long (38 lines)
Widget build(BuildContext context) {
Dead Code
Line 67
Private method '_onSubmitPress' is never called
void _onSubmitPress() async {
Potential Bug
Line 142
Null check without null-aware operator (?.)
if (_reference != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\qr_payments\qr_payment_success_screen.dart

Metric Value
Total Lines 235
Code Lines 154
Comment Lines 72
Comment Density 46.8%
Total Issues 25

Issues Found:

Duplication
Line 40
Duplicate code found (appears 2 times)
if (widget.qrPaymentDetail.transactionStatus ==
Duplication
Line 53
Duplicate code found (appears 2 times)
if (widget.qrPaymentDetail.transactionStatus ==
Duplication
Line 42
Duplicate code found (appears 2 times)
widget.qrPaymentDetail.transactionStatus ==
Duplication
Line 65
Duplicate code found (appears 2 times)
widget.qrPaymentDetail.transactionStatus ==
Duplication
Line 43
Duplicate code found (appears 2 times)
TransactionStatus.successWithTimeout)
Duplication
Line 66
Duplicate code found (appears 2 times)
TransactionStatus.successWithTimeout)
Duplication
Line 47
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w700,
Duplication
Line 58
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w700,
Duplication
Line 49
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.5),
Duplication
Line 60
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.5),
Duplication
Line 59
Duplicate code found (appears 2 times)
color: AppColors.red,
Duplication
Line 73
Duplicate code found (appears 2 times)
color: AppColors.red,
Duplication
Line 68
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(horizontal: Ui.getPadding(2)),
Duplication
Line 85
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(horizontal: Ui.getPadding(2)),
Duplication
Line 76
Duplicate code found (appears 4 times)
textAlign: TextAlign.center,
Duplication
Line 88
Duplicate code found (appears 4 times)
textAlign: TextAlign.center,
Duplication
Line 102
Duplicate code found (appears 4 times)
textAlign: TextAlign.center,
Duplication
Line 143
Duplicate code found (appears 4 times)
textAlign: TextAlign.center,
Duplication
Line 89
Duplicate code found (appears 3 times)
style: const TextStyle(
Duplication
Line 103
Duplicate code found (appears 3 times)
style: const TextStyle(
Duplication
Line 144
Duplicate code found (appears 3 times)
style: const TextStyle(
Duplication
Line 91
Duplicate code found (appears 3 times)
fontWeight: FontWeight.w500,
Duplication
Line 105
Duplicate code found (appears 3 times)
fontWeight: FontWeight.w500,
Duplication
Line 146
Duplicate code found (appears 3 times)
fontWeight: FontWeight.w500,
Long Method
Line 30
Method is too long (204 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\qr_payments\qr_scan_failed.dart

Metric Value
Total Lines 15
Code Lines 12
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\qr_payments\qr_summary_screen.dart

Metric Value
Total Lines 578
Code Lines 503
Comment Lines 55
Comment Density 10.9%
Total Issues 101

Issues Found:

Duplication
Line 58
Duplicate code found (appears 2 times)
_progressNotifier.value = true;
Duplication
Line 155
Duplicate code found (appears 2 times)
_progressNotifier.value = true;
Duplication
Line 61
Duplicate code found (appears 2 times)
qrString: widget.scannedQrDetail.qrString ?? "",
Duplication
Line 159
Duplicate code found (appears 2 times)
qrString: widget.scannedQrDetail.qrString ?? "",
Duplication
Line 62
Duplicate code found (appears 2 times)
amount: widget.scannedQrDetail.amount,
Duplication
Line 160
Duplicate code found (appears 2 times)
amount: widget.scannedQrDetail.amount,
Duplication
Line 63
Duplicate code found (appears 2 times)
remarks: widget.scannedQrDetail.reference ?? "",
Duplication
Line 161
Duplicate code found (appears 2 times)
remarks: widget.scannedQrDetail.reference ?? "",
Duplication
Line 64
Duplicate code found (appears 2 times)
reference: widget.scannedQrDetail.reference ?? "",
Duplication
Line 162
Duplicate code found (appears 2 times)
reference: widget.scannedQrDetail.reference ?? "",
Duplication
Line 69
Duplicate code found (appears 2 times)
TransactionStatus.defaultStatus) {
Duplication
Line 166
Duplicate code found (appears 2 times)
TransactionStatus.defaultStatus) {
Duplication
Line 73
Duplicate code found (appears 2 times)
getAppState(context).statePointBalance = await _fetchPointsBalance();
Duplication
Line 170
Duplicate code found (appears 2 times)
getAppState(context).statePointBalance = await _fetchPointsBalance();
Duplication
Line 77
Duplicate code found (appears 5 times)
ScreenRoutes.toQrPaymentSuccessScreen,
Duplication
Line 95
Duplicate code found (appears 5 times)
ScreenRoutes.toQrPaymentSuccessScreen,
Duplication
Line 114
Duplicate code found (appears 5 times)
ScreenRoutes.toQrPaymentSuccessScreen,
Duplication
Line 176
Duplicate code found (appears 5 times)
ScreenRoutes.toQrPaymentSuccessScreen,
Duplication
Line 191
Duplicate code found (appears 5 times)
ScreenRoutes.toQrPaymentSuccessScreen,
Duplication
Line 78
Duplicate code found (appears 4 times)
arguments: qrPaymentDetail,
Duplication
Line 96
Duplicate code found (appears 4 times)
arguments: qrPaymentDetail,
Duplication
Line 115
Duplicate code found (appears 4 times)
arguments: qrPaymentDetail,
Duplication
Line 192
Duplicate code found (appears 4 times)
arguments: qrPaymentDetail,
Duplication
Line 82
Duplicate code found (appears 4 times)
arguments: qrPaymentDetail); */
Duplication
Line 102
Duplicate code found (appears 4 times)
arguments: qrPaymentDetail); */
Duplication
Line 121
Duplicate code found (appears 4 times)
arguments: qrPaymentDetail); */
Duplication
Line 198
Duplicate code found (appears 4 times)
arguments: qrPaymentDetail); */
Duplication
Line 84
Duplicate code found (appears 2 times)
onFail: (title, message, qrPaymentDetail, code) {
Duplication
Line 180
Duplicate code found (appears 2 times)
onFail: (title, message, qrPaymentDetail, code) {
Duplication
Line 85
Duplicate code found (appears 2 times)
_progressNotifier.value = false;
Duplication
Line 181
Duplicate code found (appears 2 times)
_progressNotifier.value = false;
Duplication
Line 87
Duplicate code found (appears 2 times)
qrPaymentDetail?.transactionStatus =
Duplication
Line 183
Duplicate code found (appears 2 times)
qrPaymentDetail?.transactionStatus =
Duplication
Line 88
Duplicate code found (appears 2 times)
TransactionStatus.successWithTimeout;
Duplication
Line 184
Duplicate code found (appears 2 times)
TransactionStatus.successWithTimeout;
Duplication
Line 89
Duplicate code found (appears 3 times)
qrPaymentDetail?.message = message;
Duplication
Line 108
Duplicate code found (appears 3 times)
qrPaymentDetail?.message = message;
Duplication
Line 185
Duplicate code found (appears 3 times)
qrPaymentDetail?.message = message;
Duplication
Line 90
Duplicate code found (appears 3 times)
printLog("Qr AMount ${qrPaymentDetail?.message}");
Duplication
Line 109
Duplicate code found (appears 3 times)
printLog("Qr AMount ${qrPaymentDetail?.message}");
Duplication
Line 186
Duplicate code found (appears 3 times)
printLog("Qr AMount ${qrPaymentDetail?.message}");
Duplication
Line 92
Duplicate code found (appears 3 times)
if (qrPaymentDetail != null) {
Duplication
Line 111
Duplicate code found (appears 3 times)
if (qrPaymentDetail != null) {
Duplication
Line 188
Duplicate code found (appears 3 times)
if (qrPaymentDetail != null) {
Duplication
Line 99
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message);
Duplication
Line 118
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message);
Duplication
Line 195
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message);
Duplication
Line 124
Duplicate code found (appears 2 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 201
Duplicate code found (appears 2 times)
AlertUtil.showError(context, message, title: title);
Duplication
Line 221
Duplicate code found (appears 2 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 531
Duplicate code found (appears 2 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 223
Duplicate code found (appears 5 times)
decoration: BoxDecoration(
Duplication
Line 227
Duplicate code found (appears 5 times)
decoration: BoxDecoration(
Duplication
Line 262
Duplicate code found (appears 5 times)
decoration: BoxDecoration(
Duplication
Line 308
Duplicate code found (appears 5 times)
decoration: BoxDecoration(
Duplication
Line 532
Duplicate code found (appears 5 times)
decoration: BoxDecoration(
Duplication
Line 228
Duplicate code found (appears 3 times)
color: AppColors.white,
Duplication
Line 323
Duplicate code found (appears 3 times)
color: AppColors.white,
Duplication
Line 331
Duplicate code found (appears 3 times)
color: AppColors.white,
Duplication
Line 234
Duplicate code found (appears 2 times)
offset: Offset(0, 1),
Duplication
Line 239
Duplicate code found (appears 2 times)
offset: Offset(0, 1),
Duplication
Line 247
Duplicate code found (appears 5 times)
padding: EdgeInsets.symmetric(
Duplication
Line 253
Duplicate code found (appears 5 times)
padding: EdgeInsets.symmetric(
Duplication
Line 433
Duplicate code found (appears 5 times)
padding: EdgeInsets.symmetric(
Duplication
Line 444
Duplicate code found (appears 5 times)
padding: EdgeInsets.symmetric(
Duplication
Line 527
Duplicate code found (appears 5 times)
padding: EdgeInsets.symmetric(
Duplication
Line 249
Duplicate code found (appears 2 times)
horizontal: Ui.getPadding(1.25),
Duplication
Line 254
Duplicate code found (appears 2 times)
horizontal: Ui.getPadding(1.25),
Duplication
Line 278
Duplicate code found (appears 2 times)
width: Ui.getPadding(18.75),
Duplication
Line 291
Duplicate code found (appears 2 times)
width: Ui.getPadding(18.75),
Duplication
Line 280
Duplicate code found (appears 2 times)
widget.scannedQrDetail
Duplication
Line 448
Duplicate code found (appears 2 times)
widget.scannedQrDetail
Duplication
Line 285
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w700,
Duplication
Line 324
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w700,
Duplication
Line 309
Duplicate code found (appears 2 times)
color: AppColors.black,
Duplication
Line 534
Duplicate code found (appears 2 times)
color: AppColors.black,
Duplication
Line 312
Duplicate code found (appears 2 times)
Radius.circular(Ui.getPadding(1.5)),
Duplication
Line 314
Duplicate code found (appears 2 times)
Radius.circular(Ui.getPadding(1.5)),
Duplication
Line 346
Duplicate code found (appears 2 times)
padding: EdgeInsets.fromLTRB(
Duplication
Line 420
Duplicate code found (appears 2 times)
padding: EdgeInsets.fromLTRB(
Duplication
Line 360
Duplicate code found (appears 3 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 378
Duplicate code found (appears 3 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 396
Duplicate code found (appears 3 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 368
Duplicate code found (appears 2 times)
AmountUtil.formatDoubleAmount(
Duplication
Line 404
Duplicate code found (appears 2 times)
AmountUtil.formatDoubleAmount(
Duplication
Line 369
Duplicate code found (appears 2 times)
widget.scannedQrDetail.amount ?? 0,
Duplication
Line 405
Duplicate code found (appears 2 times)
widget.scannedQrDetail.amount ?? 0,
Duplication
Line 376
Duplicate code found (appears 2 times)
Divider(height: Ui.getPadding(3)),
Duplication
Line 394
Duplicate code found (appears 2 times)
Divider(height: Ui.getPadding(3)),
Duplication
Line 452
Duplicate code found (appears 2 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 463
Duplicate code found (appears 2 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 454
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(0.7),
Duplication
Line 467
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(0.7),
Duplication
Line 524
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(6.0),
Duplication
Line 533
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(6.0),
Dead Code
Line 150
Private method '_onCloseButtonTap' is never called
void _onCloseButtonTap() => setState(() => _isUpayDetailsAvailable = false);
Dead Code
Line 151
Private method '_onWhatIsUpayExpressTap' is never called
void _onWhatIsUpayExpressTap() =>
Dead Code
Line 154
Private method '_onPayWithUpayExpressTap' is never called
void _onPayWithUpayExpressTap() {
Potential Bug
Line 92
Null check without null-aware operator (?.)
if (qrPaymentDetail != null) {
Potential Bug
Line 111
Null check without null-aware operator (?.)
if (qrPaymentDetail != null) {
Potential Bug
Line 188
Null check without null-aware operator (?.)
if (qrPaymentDetail != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\qr_payments\scan_lanka_qr_screen.dart

Metric Value
Total Lines 244
Code Lines 195
Comment Lines 35
Comment Density 17.9%
Total Issues 25

Issues Found:

Duplication
Line 164
Duplicate code found (appears 4 times)
pushReplacementScreen(
Duplication
Line 170
Duplicate code found (appears 4 times)
pushReplacementScreen(
Duplication
Line 208
Duplicate code found (appears 4 times)
pushReplacementScreen(
Duplication
Line 233
Duplicate code found (appears 4 times)
pushReplacementScreen(
Duplication
Line 166
Duplicate code found (appears 3 times)
ScreenRoutes.toQrPaymentConfirmationScreen,
Duplication
Line 210
Duplicate code found (appears 3 times)
ScreenRoutes.toQrPaymentConfirmationScreen,
Duplication
Line 235
Duplicate code found (appears 3 times)
ScreenRoutes.toQrPaymentConfirmationScreen,
Duplication
Line 167
Duplicate code found (appears 4 times)
arguments: scannedQrDetail,
Duplication
Line 173
Duplicate code found (appears 4 times)
arguments: scannedQrDetail,
Duplication
Line 211
Duplicate code found (appears 4 times)
arguments: scannedQrDetail,
Duplication
Line 236
Duplicate code found (appears 4 times)
arguments: scannedQrDetail,
Duplication
Line 197
Duplicate code found (appears 2 times)
final ScannedQrDetail scannedQrDetail = ScannedQrDetail(
Duplication
Line 222
Duplicate code found (appears 2 times)
final ScannedQrDetail scannedQrDetail = ScannedQrDetail(
Duplication
Line 199
Duplicate code found (appears 2 times)
isAmountEditable: null,
Duplication
Line 224
Duplicate code found (appears 2 times)
isAmountEditable: null,
Duplication
Line 200
Duplicate code found (appears 2 times)
isReferenceEditable: null,
Duplication
Line 225
Duplicate code found (appears 2 times)
isReferenceEditable: null,
Duplication
Line 204
Duplicate code found (appears 2 times)
shouldEnterAmount: null,
Duplication
Line 229
Duplicate code found (appears 2 times)
shouldEnterAmount: null,
Duplication
Line 205
Duplicate code found (appears 2 times)
shouldEnterReference: null,
Duplication
Line 230
Duplicate code found (appears 2 times)
shouldEnterReference: null,
Duplication
Line 216
Duplicate code found (appears 2 times)
_isQRScanned = false;
Duplication
Line 221
Duplicate code found (appears 2 times)
_isQRScanned = false;
Long Method
Line 65
Method is too long (95 lines)
Widget build(BuildContext context) {
Dead Code
Line 162
Private method '_onDecodedQrDataReceive' is never called
void _onDecodedQrDataReceive(ScannedQrDetail scannedQrDetail) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\support\support_screen.dart

Metric Value
Total Lines 146
Code Lines 134
Comment Lines 7
Comment Density 5.2%
Total Issues 4

Issues Found:

Duplication
Line 73
Duplicate code found (appears 2 times)
width: Ui.getPadding(20),
Duplication
Line 89
Duplicate code found (appears 2 times)
width: Ui.getPadding(20),
Duplication
Line 75
Duplicate code found (appears 2 times)
const ColumnSpacer(1),
Duplication
Line 86
Duplicate code found (appears 2 times)
const ColumnSpacer(1),

C:\Users\PM_User\Documents\upay-mobile\lib\screens\traffic_fines\traffic_fines_driver_screen.dart

Metric Value
Total Lines 443
Code Lines 412
Comment Lines 5
Comment Density 1.2%
Total Issues 52

Issues Found:

Duplication
Line 112
Duplicate code found (appears 2 times)
padding: EdgeInsets.only(
Duplication
Line 313
Duplicate code found (appears 2 times)
padding: EdgeInsets.only(
Duplication
Line 113
Duplicate code found (appears 2 times)
left: Ui.getPadding(4),
Duplication
Line 314
Duplicate code found (appears 2 times)
left: Ui.getPadding(4),
Duplication
Line 114
Duplicate code found (appears 2 times)
right: Ui.getPadding(4),
Duplication
Line 315
Duplicate code found (appears 2 times)
right: Ui.getPadding(4),
Duplication
Line 119
Duplicate code found (appears 2 times)
const ColumnSpacer(5),
Duplication
Line 230
Duplicate code found (appears 2 times)
const ColumnSpacer(5),
Duplication
Line 123
Duplicate code found (appears 8 times)
const ColumnSpacer(2),
Duplication
Line 138
Duplicate code found (appears 8 times)
const ColumnSpacer(2),
Duplication
Line 158
Duplicate code found (appears 8 times)
const ColumnSpacer(2),
Duplication
Line 182
Duplicate code found (appears 8 times)
const ColumnSpacer(2),
Duplication
Line 202
Duplicate code found (appears 8 times)
const ColumnSpacer(2),
Duplication
Line 247
Duplicate code found (appears 8 times)
const ColumnSpacer(2),
Duplication
Line 268
Duplicate code found (appears 8 times)
const ColumnSpacer(2),
Duplication
Line 343
Duplicate code found (appears 8 times)
const ColumnSpacer(2),
Duplication
Line 130
Duplicate code found (appears 2 times)
const ColumnSpacer(4),
Duplication
Line 303
Duplicate code found (appears 2 times)
const ColumnSpacer(4),
Duplication
Line 133
Duplicate code found (appears 2 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 233
Duplicate code found (appears 2 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 134
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.5),
Duplication
Line 234
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.5),
Duplication
Line 135
Duplicate code found (appears 2 times)
fontWeight: FontWeight.bold,
Duplication
Line 235
Duplicate code found (appears 2 times)
fontWeight: FontWeight.bold,
Duplication
Line 141
Duplicate code found (appears 5 times)
fillColor: AppColors.lightBlue1.withOpacity(0.5),
Duplication
Line 161
Duplicate code found (appears 5 times)
fillColor: AppColors.lightBlue1.withOpacity(0.5),
Duplication
Line 185
Duplicate code found (appears 5 times)
fillColor: AppColors.lightBlue1.withOpacity(0.5),
Duplication
Line 205
Duplicate code found (appears 5 times)
fillColor: AppColors.lightBlue1.withOpacity(0.5),
Duplication
Line 250
Duplicate code found (appears 5 times)
fillColor: AppColors.lightBlue1.withOpacity(0.5),
Duplication
Line 146
Duplicate code found (appears 3 times)
onChanged: (text) {},
Duplication
Line 190
Duplicate code found (appears 3 times)
onChanged: (text) {},
Duplication
Line 216
Duplicate code found (appears 3 times)
onChanged: (text) {},
Duplication
Line 149
Duplicate code found (appears 4 times)
FilteringTextInputFormatter.allow(
Duplication
Line 174
Duplicate code found (appears 4 times)
FilteringTextInputFormatter.allow(
Duplication
Line 193
Duplicate code found (appears 4 times)
FilteringTextInputFormatter.allow(
Duplication
Line 219
Duplicate code found (appears 4 times)
FilteringTextInputFormatter.allow(
Duplication
Line 150
Duplicate code found (appears 3 times)
RegExp(r"[a-zA-Z0-9-]"),
Duplication
Line 175
Duplicate code found (appears 3 times)
RegExp(r"[a-zA-Z0-9-]"),
Duplication
Line 194
Duplicate code found (appears 3 times)
RegExp(r"[a-zA-Z0-9-]"),
Duplication
Line 154
Duplicate code found (appears 4 times)
onEditingComplete: () {
Duplication
Line 178
Duplicate code found (appears 4 times)
onEditingComplete: () {
Duplication
Line 198
Duplicate code found (appears 4 times)
onEditingComplete: () {
Duplication
Line 223
Duplicate code found (appears 4 times)
onEditingComplete: () {
Duplication
Line 241
Duplicate code found (appears 2 times)
style: TextStyles.semiBold.copyWith(
Duplication
Line 292
Duplicate code found (appears 2 times)
style: TextStyles.semiBold.copyWith(
Duplication
Line 244
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w500,
Duplication
Line 295
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w500,
Duplication
Line 391
Duplicate code found (appears 2 times)
return getLangStr(context, "amount_required");
Duplication
Line 395
Duplicate code found (appears 2 times)
return getLangStr(context, "amount_required");
Unused Import
Line 1
Unused import: dart:math
import "dart:math";
Long Method
Line 104
Method is too long (242 lines)
Widget build(BuildContext context) {
Potential Bug
Line 168
Null check without null-aware operator (?.)
return (errorText != null)

C:\Users\PM_User\Documents\upay-mobile\lib\screens\traffic_fines\traffic_fines_screen.dart

Metric Value
Total Lines 492
Code Lines 464
Comment Lines 3
Comment Density 0.6%
Total Issues 49

Issues Found:

Duplication
Line 39
Duplicate code found (appears 2 times)
TextEditingController();
Duplication
Line 41
Duplicate code found (appears 2 times)
TextEditingController();
Duplication
Line 92
Duplicate code found (appears 2 times)
child: SingleChildScrollView(
Duplication
Line 98
Duplicate code found (appears 2 times)
child: SingleChildScrollView(
Duplication
Line 94
Duplicate code found (appears 2 times)
padding: EdgeInsets.only(
Duplication
Line 349
Duplicate code found (appears 2 times)
padding: EdgeInsets.only(
Duplication
Line 95
Duplicate code found (appears 2 times)
left: Ui.getPadding(4),
Duplication
Line 350
Duplicate code found (appears 2 times)
left: Ui.getPadding(4),
Duplication
Line 96
Duplicate code found (appears 2 times)
right: Ui.getPadding(4),
Duplication
Line 351
Duplicate code found (appears 2 times)
right: Ui.getPadding(4),
Duplication
Line 105
Duplicate code found (appears 3 times)
const ColumnSpacer(2),
Duplication
Line 296
Duplicate code found (appears 3 times)
const ColumnSpacer(2),
Duplication
Line 380
Duplicate code found (appears 3 times)
const ColumnSpacer(2),
Duplication
Line 116
Duplicate code found (appears 2 times)
const ColumnSpacer(4),
Duplication
Line 336
Duplicate code found (appears 2 times)
const ColumnSpacer(4),
Duplication
Line 120
Duplicate code found (appears 5 times)
AppColors.lightBlue1.withOpacity(0.5),
Duplication
Line 159
Duplicate code found (appears 5 times)
AppColors.lightBlue1.withOpacity(0.5),
Duplication
Line 189
Duplicate code found (appears 5 times)
AppColors.lightBlue1.withOpacity(0.5),
Duplication
Line 247
Duplicate code found (appears 5 times)
AppColors.lightBlue1.withOpacity(0.5),
Duplication
Line 273
Duplicate code found (appears 5 times)
AppColors.lightBlue1.withOpacity(0.5),
Duplication
Line 155
Duplicate code found (appears 4 times)
const ColumnSpacer(2.5),
Duplication
Line 182
Duplicate code found (appears 4 times)
const ColumnSpacer(2.5),
Duplication
Line 242
Duplicate code found (appears 4 times)
const ColumnSpacer(2.5),
Duplication
Line 264
Duplicate code found (appears 4 times)
const ColumnSpacer(2.5),
Duplication
Line 167
Duplicate code found (appears 2 times)
_vehicleNumberFocus.unfocus();
Duplication
Line 179
Duplicate code found (appears 2 times)
_vehicleNumberFocus.unfocus();
Duplication
Line 172
Duplicate code found (appears 3 times)
FilteringTextInputFormatter.allow(
Duplication
Line 255
Duplicate code found (appears 3 times)
FilteringTextInputFormatter.allow(
Duplication
Line 287
Duplicate code found (appears 3 times)
FilteringTextInputFormatter.allow(
Duplication
Line 173
Duplicate code found (appears 2 times)
RegExp(r"[a-zA-Z0-9-]"),
Duplication
Line 256
Duplicate code found (appears 2 times)
RegExp(r"[a-zA-Z0-9-]"),
Duplication
Line 178
Duplicate code found (appears 3 times)
onEditingComplete: () {
Duplication
Line 259
Duplicate code found (appears 3 times)
onEditingComplete: () {
Duplication
Line 292
Duplicate code found (appears 3 times)
onEditingComplete: () {
Duplication
Line 203
Duplicate code found (appears 2 times)
FocusScope.of(context).unfocus();
Duplication
Line 293
Duplicate code found (appears 2 times)
FocusScope.of(context).unfocus();
Duplication
Line 251
Duplicate code found (appears 2 times)
onChanged: (text) {},
Duplication
Line 277
Duplicate code found (appears 2 times)
onChanged: (text) {},
Duplication
Line 282
Duplicate code found (appears 2 times)
color: AppColors.black,
Duplication
Line 325
Duplicate code found (appears 2 times)
color: AppColors.black,
Duplication
Line 432
Duplicate code found (appears 2 times)
return getLangStr(context, "amount_required");
Duplication
Line 436
Duplicate code found (appears 2 times)
return getLangStr(context, "amount_required");
Duplication
Line 456
Duplicate code found (appears 2 times)
_progressNotifier.value = true;
Duplication
Line 474
Duplicate code found (appears 2 times)
_progressNotifier.value = true;
Duplication
Line 465
Duplicate code found (appears 2 times)
AlertUtil.showError(context, message);
Duplication
Line 485
Duplicate code found (appears 2 times)
AlertUtil.showError(context, message);
Duplication
Line 468
Duplicate code found (appears 2 times)
_progressNotifier.value = false;
Duplication
Line 488
Duplicate code found (appears 2 times)
_progressNotifier.value = false;
Long Method
Line 85
Method is too long (298 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\transaction_history\transaction_histories_view.dart

Metric Value
Total Lines 220
Code Lines 190
Comment Lines 11
Comment Density 5.8%
Total Issues 3

Issues Found:

Duplication
Line 61
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 124
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Long Method
Line 59
Method is too long (96 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\transaction_history\transaction_history_action_icon.dart

Metric Value
Total Lines 31
Code Lines 28
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\transaction_history\transaction_history_detail_screen.dart

Metric Value
Total Lines 559
Code Lines 409
Comment Lines 134
Comment Density 32.8%
Total Issues 54

Issues Found:

Duplication
Line 110
Duplicate code found (appears 2 times)
widget.transactionHistoryData.status == "SUCCESS"
Duplication
Line 119
Duplicate code found (appears 2 times)
widget.transactionHistoryData.status == "SUCCESS"
Duplication
Line 127
Duplicate code found (appears 3 times)
fontWeight: FontWeight.bold,
Duplication
Line 204
Duplicate code found (appears 3 times)
fontWeight: FontWeight.bold,
Duplication
Line 488
Duplicate code found (appears 3 times)
fontWeight: FontWeight.bold,
Duplication
Line 181
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 495
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 192
Duplicate code found (appears 2 times)
surfaceTintColor: AppColors.white,
Duplication
Line 410
Duplicate code found (appears 2 times)
surfaceTintColor: AppColors.white,
Duplication
Line 193
Duplicate code found (appears 4 times)
color: AppColors.white,
Duplication
Line 409
Duplicate code found (appears 4 times)
color: AppColors.white,
Duplication
Line 496
Duplicate code found (appears 4 times)
color: AppColors.white,
Duplication
Line 510
Duplicate code found (appears 4 times)
color: AppColors.white,
Duplication
Line 196
Duplicate code found (appears 3 times)
padding: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 412
Duplicate code found (appears 3 times)
padding: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 494
Duplicate code found (appears 3 times)
padding: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 286
Duplicate code found (appears 5 times)
SizedBox(height: Ui.getPadding(0.5)),
Duplication
Line 295
Duplicate code found (appears 5 times)
SizedBox(height: Ui.getPadding(0.5)),
Duplication
Line 303
Duplicate code found (appears 5 times)
SizedBox(height: Ui.getPadding(0.5)),
Duplication
Line 311
Duplicate code found (appears 5 times)
SizedBox(height: Ui.getPadding(0.5)),
Duplication
Line 320
Duplicate code found (appears 5 times)
SizedBox(height: Ui.getPadding(0.5)),
Duplication
Line 287
Duplicate code found (appears 7 times)
TransactionHistoryDetail(
Duplication
Line 296
Duplicate code found (appears 7 times)
TransactionHistoryDetail(
Duplication
Line 304
Duplicate code found (appears 7 times)
TransactionHistoryDetail(
Duplication
Line 312
Duplicate code found (appears 7 times)
TransactionHistoryDetail(
Duplication
Line 321
Duplicate code found (appears 7 times)
TransactionHistoryDetail(
Duplication
Line 339
Duplicate code found (appears 7 times)
TransactionHistoryDetail(
Duplication
Line 355
Duplicate code found (appears 7 times)
TransactionHistoryDetail(
Duplication
Line 298
Duplicate code found (appears 4 times)
rightText: widget.transactionHistoryData
Duplication
Line 306
Duplicate code found (appears 4 times)
rightText: widget.transactionHistoryData
Duplication
Line 314
Duplicate code found (appears 4 times)
rightText: widget.transactionHistoryData
Duplication
Line 341
Duplicate code found (appears 4 times)
rightText: widget.transactionHistoryData
Duplication
Line 329
Duplicate code found (appears 4 times)
widget.transactionHistoryData
Duplication
Line 332
Duplicate code found (appears 4 times)
widget.transactionHistoryData
Duplication
Line 428
Duplicate code found (appears 4 times)
widget.transactionHistoryData
Duplication
Line 537
Duplicate code found (appears 4 times)
widget.transactionHistoryData
Duplication
Line 337
Duplicate code found (appears 2 times)
height: Ui.getPadding(0.5),
Duplication
Line 353
Duplicate code found (appears 2 times)
height: Ui.getPadding(0.5),
Duplication
Line 348
Duplicate code found (appears 2 times)
widget.transactionHistoryData.remarks !=
Duplication
Line 350
Duplicate code found (appears 2 times)
widget.transactionHistoryData.remarks !=
Duplication
Line 406
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 478
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 408
Duplicate code found (appears 2 times)
margin: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 493
Duplicate code found (appears 2 times)
margin: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 414
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 527
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 417
Duplicate code found (appears 3 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 440
Duplicate code found (appears 3 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 460
Duplicate code found (appears 3 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 427
Duplicate code found (appears 3 times)
AmountUtil.formatAmount(
Duplication
Line 448
Duplicate code found (appears 3 times)
AmountUtil.formatAmount(
Duplication
Line 468
Duplicate code found (appears 3 times)
AmountUtil.formatAmount(
Duplication
Line 438
Duplicate code found (appears 2 times)
Divider(height: Ui.getPadding(2)),
Duplication
Line 458
Duplicate code found (appears 2 times)
Divider(height: Ui.getPadding(2)),

C:\Users\PM_User\Documents\upay-mobile\lib\screens\transaction_history\transaction_history_screen.dart

Metric Value
Total Lines 74
Code Lines 61
Comment Lines 3
Comment Density 4.9%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\transfer_payees\added_tansfer_payees_area.dart

Metric Value
Total Lines 89
Code Lines 79
Comment Lines 0
Comment Density 0.0%
Total Issues 15

Issues Found:

Duplication
Line 29
Duplicate code found (appears 2 times)
final routeData = UpdatePayeeRouteData(payee: payee);
Duplication
Line 38
Duplicate code found (appears 2 times)
final routeData = UpdatePayeeRouteData(payee: payee);
Duplication
Line 32
Duplicate code found (appears 2 times)
ScreenRoutes.toUpdateTransferPayeeScreen,
Duplication
Line 41
Duplicate code found (appears 2 times)
ScreenRoutes.toUpdateTransferPayeeScreen,
Duplication
Line 33
Duplicate code found (appears 2 times)
arguments: routeData,
Duplication
Line 42
Duplicate code found (appears 2 times)
arguments: routeData,
Duplication
Line 59
Duplicate code found (appears 2 times)
onEditPayeeTap: _onEditPayeeTap,
Duplication
Line 82
Duplicate code found (appears 2 times)
onEditPayeeTap: _onEditPayeeTap,
Duplication
Line 60
Duplicate code found (appears 2 times)
onDeletePayeeTap: _onDeletePayeeTap,
Duplication
Line 83
Duplicate code found (appears 2 times)
onDeletePayeeTap: _onDeletePayeeTap,
Duplication
Line 69
Duplicate code found (appears 3 times)
addedPayeeCardBorderType =
Duplication
Line 72
Duplicate code found (appears 3 times)
addedPayeeCardBorderType =
Duplication
Line 75
Duplicate code found (appears 3 times)
addedPayeeCardBorderType =
Dead Code
Line 37
Private method '_onDeletePayeeTap' is never called
void _onDeletePayeeTap(SavedPayee payee) {
Dead Code
Line 46
Private method '_onPayTap' is never called
void _onPayTap(SavedPayee payee) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\transfer_payees\added_transfer_payee_card.dart

Metric Value
Total Lines 168
Code Lines 155
Comment Lines 1
Comment Density 0.6%
Total Issues 16

Issues Found:

Duplication
Line 19
Duplicate code found (appears 2 times)
return const BorderRadius.only(
Duplication
Line 25
Duplicate code found (appears 2 times)
return const BorderRadius.only(
Duplication
Line 85
Duplicate code found (appears 3 times)
alignment: Alignment.centerLeft,
Duplication
Line 98
Duplicate code found (appears 3 times)
alignment: Alignment.centerLeft,
Duplication
Line 111
Duplicate code found (appears 3 times)
alignment: Alignment.centerLeft,
Duplication
Line 87
Duplicate code found (appears 3 times)
padding: EdgeInsets.only(left: _leftPadding),
Duplication
Line 100
Duplicate code found (appears 3 times)
padding: EdgeInsets.only(left: _leftPadding),
Duplication
Line 113
Duplicate code found (appears 3 times)
padding: EdgeInsets.only(left: _leftPadding),
Duplication
Line 129
Duplicate code found (appears 2 times)
width: constraints.maxWidth * 0.1,
Duplication
Line 136
Duplicate code found (appears 2 times)
width: constraints.maxWidth * 0.1,
Duplication
Line 139
Duplicate code found (appears 3 times)
AddedPayeeActionButton(
Duplication
Line 147
Duplicate code found (appears 3 times)
AddedPayeeActionButton(
Duplication
Line 155
Duplicate code found (appears 3 times)
AddedPayeeActionButton(
Duplication
Line 140
Duplicate code found (appears 3 times)
addedPayeeActionButtonType:
Duplication
Line 148
Duplicate code found (appears 3 times)
addedPayeeActionButtonType:
Duplication
Line 156
Duplicate code found (appears 3 times)
addedPayeeActionButtonType:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\transfer_payees\transfer_payees_selected_payees_summary.dart

Metric Value
Total Lines 140
Code Lines 128
Comment Lines 3
Comment Density 2.3%
Total Issues 6

Issues Found:

Duplication
Line 92
Duplicate code found (appears 2 times)
color: AppColors.orange1,
Duplication
Line 97
Duplicate code found (appears 2 times)
color: AppColors.orange1,
Long Method
Line 50
Method is too long (64 lines)
Widget build(BuildContext context) {
Dead Code
Line 116
Private method '_updateSearchResults' is never called
void _updateSearchResults(String value) {
Potential Bug
Line 123
Null check without null-aware operator (?.)
final bool matches = (payee.nickname != null &&
Potential Bug
Line 127
Null check without null-aware operator (?.)
(payee.nickname != null &&

C:\Users\PM_User\Documents\upay-mobile\lib\screens\transfer_payees\transfer_payees_view.dart

Metric Value
Total Lines 55
Code Lines 49
Comment Lines 3
Comment Density 6.1%
Total Issues 8

Issues Found:

Duplication
Line 39
Duplicate code found (appears 2 times)
return TransferPayeesSelectedPayeesSummaryView(
Duplication
Line 45
Duplicate code found (appears 2 times)
return TransferPayeesSelectedPayeesSummaryView(
Duplication
Line 40
Duplicate code found (appears 2 times)
addedPayees: addedPayees,
Duplication
Line 46
Duplicate code found (appears 2 times)
addedPayees: addedPayees,
Duplication
Line 42
Duplicate code found (appears 2 times)
progressNotifier: progressNotifier,
Duplication
Line 48
Duplicate code found (appears 2 times)
progressNotifier: progressNotifier,
Long Method
Line 27
Method is too long (27 lines)
Widget build(BuildContext context) {
Potential Bug
Line 38
Null check without null-aware operator (?.)
selectedTransferPayee != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\transfer_payees\transfer_payee_search_area.dart

Metric Value
Total Lines 59
Code Lines 56
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\transfer_payees\update_transfer_payee.dart

Metric Value
Total Lines 371
Code Lines 336
Comment Lines 10
Comment Density 3.0%
Total Issues 63

Issues Found:

Duplication
Line 81
Duplicate code found (appears 2 times)
_progressNotifier.value = true;
Duplication
Line 204
Duplicate code found (appears 2 times)
_progressNotifier.value = true;
Duplication
Line 83
Duplicate code found (appears 2 times)
if (_payee?.isCreditCardPayee ?? false) {
Duplication
Line 206
Duplicate code found (appears 2 times)
if (_payee?.isCreditCardPayee ?? false) {
Duplication
Line 91
Duplicate code found (appears 2 times)
accountId: payeeId.toString(),
Duplication
Line 120
Duplicate code found (appears 2 times)
accountId: payeeId.toString(),
Duplication
Line 96
Duplicate code found (appears 4 times)
AlertUtil.showSuccess(context, "payee_update_success").then((value) {
Duplication
Line 125
Duplicate code found (appears 4 times)
AlertUtil.showSuccess(context, "payee_update_success").then((value) {
Duplication
Line 155
Duplicate code found (appears 4 times)
AlertUtil.showSuccess(context, "payee_update_success").then((value) {
Duplication
Line 183
Duplicate code found (appears 4 times)
AlertUtil.showSuccess(context, "payee_update_success").then((value) {
Duplication
Line 97
Duplicate code found (appears 6 times)
moveToScreen(context, ScreenRoutes.toHomeScreen);
Duplication
Line 126
Duplicate code found (appears 6 times)
moveToScreen(context, ScreenRoutes.toHomeScreen);
Duplication
Line 156
Duplicate code found (appears 6 times)
moveToScreen(context, ScreenRoutes.toHomeScreen);
Duplication
Line 184
Duplicate code found (appears 6 times)
moveToScreen(context, ScreenRoutes.toHomeScreen);
Duplication
Line 212
Duplicate code found (appears 6 times)
moveToScreen(context, ScreenRoutes.toHomeScreen);
Duplication
Line 237
Duplicate code found (appears 6 times)
moveToScreen(context, ScreenRoutes.toHomeScreen);
Duplication
Line 100
Duplicate code found (appears 6 times)
ScreenRoutes.toMyPayeesScreen,
Duplication
Line 129
Duplicate code found (appears 6 times)
ScreenRoutes.toMyPayeesScreen,
Duplication
Line 159
Duplicate code found (appears 6 times)
ScreenRoutes.toMyPayeesScreen,
Duplication
Line 187
Duplicate code found (appears 6 times)
ScreenRoutes.toMyPayeesScreen,
Duplication
Line 215
Duplicate code found (appears 6 times)
ScreenRoutes.toMyPayeesScreen,
Duplication
Line 240
Duplicate code found (appears 6 times)
ScreenRoutes.toMyPayeesScreen,
Duplication
Line 101
Duplicate code found (appears 6 times)
arguments: MyPayeesDetail(initalIndex: 1),
Duplication
Line 130
Duplicate code found (appears 6 times)
arguments: MyPayeesDetail(initalIndex: 1),
Duplication
Line 160
Duplicate code found (appears 6 times)
arguments: MyPayeesDetail(initalIndex: 1),
Duplication
Line 188
Duplicate code found (appears 6 times)
arguments: MyPayeesDetail(initalIndex: 1),
Duplication
Line 216
Duplicate code found (appears 6 times)
arguments: MyPayeesDetail(initalIndex: 1),
Duplication
Line 241
Duplicate code found (appears 6 times)
arguments: MyPayeesDetail(initalIndex: 1),
Duplication
Line 105
Duplicate code found (appears 6 times)
onFailed: (title, message, data) {
Duplication
Line 134
Duplicate code found (appears 6 times)
onFailed: (title, message, data) {
Duplication
Line 164
Duplicate code found (appears 6 times)
onFailed: (title, message, data) {
Duplication
Line 192
Duplicate code found (appears 6 times)
onFailed: (title, message, data) {
Duplication
Line 220
Duplicate code found (appears 6 times)
onFailed: (title, message, data) {
Duplication
Line 245
Duplicate code found (appears 6 times)
onFailed: (title, message, data) {
Duplication
Line 108
Duplicate code found (appears 6 times)
message ?? ErrorMessages.unexpectedError,
Duplication
Line 137
Duplicate code found (appears 6 times)
message ?? ErrorMessages.unexpectedError,
Duplication
Line 167
Duplicate code found (appears 6 times)
message ?? ErrorMessages.unexpectedError,
Duplication
Line 195
Duplicate code found (appears 6 times)
message ?? ErrorMessages.unexpectedError,
Duplication
Line 223
Duplicate code found (appears 6 times)
message ?? ErrorMessages.unexpectedError,
Duplication
Line 248
Duplicate code found (appears 6 times)
message ?? ErrorMessages.unexpectedError,
Duplication
Line 112
Duplicate code found (appears 2 times)
onCompleted: () => _progressNotifier.value = false,
Duplication
Line 141
Duplicate code found (appears 2 times)
onCompleted: () => _progressNotifier.value = false,
Duplication
Line 148
Duplicate code found (appears 3 times)
payeeId: _payee?.id ?? -1,
Duplication
Line 209
Duplicate code found (appears 3 times)
payeeId: _payee?.id ?? -1,
Duplication
Line 232
Duplicate code found (appears 3 times)
payeeId: _payee?.id ?? -1,
Duplication
Line 149
Duplicate code found (appears 2 times)
nickname: _payeeNameController.text.trim(),
Duplication
Line 179
Duplicate code found (appears 2 times)
nickname: _payeeNameController.text.trim(),
Duplication
Line 150
Duplicate code found (appears 2 times)
onSuccess: () async {
Duplication
Line 180
Duplicate code found (appears 2 times)
onSuccess: () async {
Duplication
Line 154
Duplicate code found (appears 2 times)
setState(() => _payeeNameReadOnly = true);
Duplication
Line 182
Duplicate code found (appears 2 times)
setState(() => _payeeNameReadOnly = true);
Duplication
Line 171
Duplicate code found (appears 4 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 199
Duplicate code found (appears 4 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 227
Duplicate code found (appears 4 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 252
Duplicate code found (appears 4 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 211
Duplicate code found (appears 2 times)
AlertUtil.showSuccess(context, "payee_delete_success").then((value) {
Duplication
Line 236
Duplicate code found (appears 2 times)
AlertUtil.showSuccess(context, "payee_delete_success").then((value) {
Duplication
Line 281
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 296
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 309
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.9,
Duplication
Line 334
Duplicate code found (appears 2 times)
SizedBox(width: Ui.getPadding(3)),
Duplication
Line 364
Duplicate code found (appears 2 times)
SizedBox(width: Ui.getPadding(3)),
Dead Code
Line 58
Private method '_onEditPayeeTap' is never called
void _onEditPayeeTap() {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\u_connect\tread_screen.dart

Metric Value
Total Lines 599
Code Lines 556
Comment Lines 12
Comment Density 2.2%
Total Issues 87

Issues Found:

Duplication
Line 62
Duplicate code found (appears 2 times)
WidgetsBinding.instance.addPostFrameCallback((_) {
Duplication
Line 415
Duplicate code found (appears 2 times)
WidgetsBinding.instance.addPostFrameCallback((_) {
Duplication
Line 71
Duplicate code found (appears 2 times)
_scrollController.animateTo(
Duplication
Line 417
Duplicate code found (appears 2 times)
_scrollController.animateTo(
Duplication
Line 72
Duplicate code found (appears 2 times)
_scrollController.position.maxScrollExtent,
Duplication
Line 418
Duplicate code found (appears 2 times)
_scrollController.position.maxScrollExtent,
Duplication
Line 73
Duplicate code found (appears 2 times)
duration: const Duration(milliseconds: 300),
Duplication
Line 419
Duplicate code found (appears 2 times)
duration: const Duration(milliseconds: 300),
Duplication
Line 74
Duplicate code found (appears 2 times)
curve: Curves.easeOut,
Duplication
Line 420
Duplicate code found (appears 2 times)
curve: Curves.easeOut,
Duplication
Line 82
Duplicate code found (appears 2 times)
_messageFocusNode.unfocus();
Duplication
Line 460
Duplicate code found (appears 2 times)
_messageFocusNode.unfocus();
Duplication
Line 85
Duplicate code found (appears 2 times)
attachments2.clear();
Duplication
Line 459
Duplicate code found (appears 2 times)
attachments2.clear();
Duplication
Line 95
Duplicate code found (appears 2 times)
progressNotifier: _progressNotifier,
Duplication
Line 178
Duplicate code found (appears 2 times)
progressNotifier: _progressNotifier,
Duplication
Line 105
Duplicate code found (appears 2 times)
mainAxisAlignment: MainAxisAlignment.center,
Duplication
Line 143
Duplicate code found (appears 2 times)
mainAxisAlignment: MainAxisAlignment.center,
Duplication
Line 116
Duplicate code found (appears 2 times)
child: ListView.builder(
Duplication
Line 160
Duplicate code found (appears 2 times)
child: ListView.builder(
Duplication
Line 118
Duplicate code found (appears 2 times)
physics: const BouncingScrollPhysics(),
Duplication
Line 162
Duplicate code found (appears 2 times)
physics: const BouncingScrollPhysics(),
Duplication
Line 120
Duplicate code found (appears 2 times)
itemBuilder: (_, index) {
Duplication
Line 166
Duplicate code found (appears 2 times)
itemBuilder: (_, index) {
Duplication
Line 121
Duplicate code found (appears 2 times)
return GridViewAnimation(
Duplication
Line 169
Duplicate code found (appears 2 times)
return GridViewAnimation(
Duplication
Line 123
Duplicate code found (appears 2 times)
child: MessageThreadListTile(
Duplication
Line 175
Duplicate code found (appears 2 times)
child: MessageThreadListTile(
Duplication
Line 202
Duplicate code found (appears 2 times)
textAlign: TextAlign.center,
Duplication
Line 281
Duplicate code found (appears 2 times)
textAlign: TextAlign.center,
Duplication
Line 203
Duplicate code found (appears 2 times)
style: const TextStyle(
Duplication
Line 282
Duplicate code found (appears 2 times)
style: const TextStyle(
Duplication
Line 204
Duplicate code found (appears 2 times)
fontWeight: FontWeight.bold,
Duplication
Line 283
Duplicate code found (appears 2 times)
fontWeight: FontWeight.bold,
Duplication
Line 205
Duplicate code found (appears 2 times)
fontStyle: FontStyle.italic,
Duplication
Line 284
Duplicate code found (appears 2 times)
fontStyle: FontStyle.italic,
Duplication
Line 238
Duplicate code found (appears 4 times)
BorderRadius.circular(Ui.getPadding(0.8)),
Duplication
Line 246
Duplicate code found (appears 4 times)
BorderRadius.circular(Ui.getPadding(0.8)),
Duplication
Line 254
Duplicate code found (appears 4 times)
BorderRadius.circular(Ui.getPadding(0.8)),
Duplication
Line 262
Duplicate code found (appears 4 times)
BorderRadius.circular(Ui.getPadding(0.8)),
Duplication
Line 239
Duplicate code found (appears 4 times)
borderSide: BorderSide(
Duplication
Line 247
Duplicate code found (appears 4 times)
borderSide: BorderSide(
Duplication
Line 255
Duplicate code found (appears 4 times)
borderSide: BorderSide(
Duplication
Line 263
Duplicate code found (appears 4 times)
borderSide: BorderSide(
Duplication
Line 240
Duplicate code found (appears 4 times)
color: AppColors.grey1.withOpacity(0.4),
Duplication
Line 248
Duplicate code found (appears 4 times)
color: AppColors.grey1.withOpacity(0.4),
Duplication
Line 256
Duplicate code found (appears 4 times)
color: AppColors.grey1.withOpacity(0.4),
Duplication
Line 264
Duplicate code found (appears 4 times)
color: AppColors.grey1.withOpacity(0.4),
Duplication
Line 278
Duplicate code found (appears 3 times)
const ColumnSpacer(1),
Duplication
Line 287
Duplicate code found (appears 3 times)
const ColumnSpacer(1),
Duplication
Line 289
Duplicate code found (appears 3 times)
const ColumnSpacer(1),
Duplication
Line 314
Duplicate code found (appears 2 times)
_uploadMessageAttachmentSequentially(
Duplication
Line 319
Duplicate code found (appears 2 times)
_uploadMessageAttachmentSequentially(
Duplication
Line 355
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(8),
Duplication
Line 369
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(8),
Duplication
Line 367
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 389
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 408
Duplicate code found (appears 3 times)
_progressNotifier.value = true;
Duplication
Line 442
Duplicate code found (appears 3 times)
_progressNotifier.value = true;
Duplication
Line 563
Duplicate code found (appears 3 times)
_progressNotifier.value = true;
Duplication
Line 425
Duplicate code found (appears 2 times)
onFail: (message) {},
Duplication
Line 463
Duplicate code found (appears 2 times)
onFail: (message) {},
Duplication
Line 427
Duplicate code found (appears 3 times)
_progressNotifier.value = false;
Duplication
Line 465
Duplicate code found (appears 3 times)
_progressNotifier.value = false;
Duplication
Line 590
Duplicate code found (appears 3 times)
_progressNotifier.value = false;
Duplication
Line 545
Duplicate code found (appears 2 times)
widget.uConnectTicketListModel?.conversationId,
Duplication
Line 572
Duplicate code found (appears 2 times)
widget.uConnectTicketListModel?.conversationId,
Duplication
Line 546
Duplicate code found (appears 2 times)
widget.uConnectTicketListModel?.ticketNumber,
Duplication
Line 573
Duplicate code found (appears 2 times)
widget.uConnectTicketListModel?.ticketNumber,
Duplication
Line 547
Duplicate code found (appears 2 times)
widget.uConnectTicketListModel?.inquiryTypeId,
Duplication
Line 574
Duplicate code found (appears 2 times)
widget.uConnectTicketListModel?.inquiryTypeId,
Duplication
Line 548
Duplicate code found (appears 2 times)
widget.uConnectTicketListModel?.subject,
Duplication
Line 575
Duplicate code found (appears 2 times)
widget.uConnectTicketListModel?.subject,
Duplication
Line 549
Duplicate code found (appears 2 times)
widget.uConnectTicketListModel?.categoryId,
Duplication
Line 576
Duplicate code found (appears 2 times)
widget.uConnectTicketListModel?.categoryId,
Duplication
Line 550
Duplicate code found (appears 2 times)
widget.uConnectTicketListModel?.branchId,
Duplication
Line 577
Duplicate code found (appears 2 times)
widget.uConnectTicketListModel?.branchId,
Duplication
Line 551
Duplicate code found (appears 2 times)
_messageController.text,
Duplication
Line 578
Duplicate code found (appears 2 times)
_messageController.text,
Duplication
Line 570
Duplicate code found (appears 2 times)
if (i == attachments.length - 1) {
Duplication
Line 589
Duplicate code found (appears 2 times)
if (i == attachments.length - 1) {
Unused Import
Line 1
Unused import: dart:async
import "dart:async";
Unused Import
Line 2
Unused import: dart:io
import "dart:io";
Long Method
Line 92
Method is too long (250 lines)
Widget build(BuildContext context) {
Dead Code
Line 68
Private method '_handleFocusChange' is never called
void _handleFocusChange() {
Potential Bug
Line 496
Null check without null-aware operator (?.)
if (result != null) {
Potential Bug
Line 501
Null check without null-aware operator (?.)
if (element != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\u_connect\u_connect_message_create_screen.dart

Metric Value
Total Lines 698
Code Lines 638
Comment Lines 17
Comment Density 2.7%
Total Issues 75

Issues Found:

Duplication
Line 100
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 194
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 104
Duplicate code found (appears 7 times)
textAlign: TextAlign.center,
Duplication
Line 129
Duplicate code found (appears 7 times)
textAlign: TextAlign.center,
Duplication
Line 175
Duplicate code found (appears 7 times)
textAlign: TextAlign.center,
Duplication
Line 199
Duplicate code found (appears 7 times)
textAlign: TextAlign.center,
Duplication
Line 229
Duplicate code found (appears 7 times)
textAlign: TextAlign.center,
Duplication
Line 244
Duplicate code found (appears 7 times)
textAlign: TextAlign.center,
Duplication
Line 291
Duplicate code found (appears 7 times)
textAlign: TextAlign.center,
Duplication
Line 105
Duplicate code found (appears 6 times)
style: TextStyles.defaultMediumText,
Duplication
Line 130
Duplicate code found (appears 6 times)
style: TextStyles.defaultMediumText,
Duplication
Line 176
Duplicate code found (appears 6 times)
style: TextStyles.defaultMediumText,
Duplication
Line 200
Duplicate code found (appears 6 times)
style: TextStyles.defaultMediumText,
Duplication
Line 230
Duplicate code found (appears 6 times)
style: TextStyles.defaultMediumText,
Duplication
Line 245
Duplicate code found (appears 6 times)
style: TextStyles.defaultMediumText,
Duplication
Line 107
Duplicate code found (appears 6 times)
const ColumnSpacer(2),
Duplication
Line 132
Duplicate code found (appears 6 times)
const ColumnSpacer(2),
Duplication
Line 178
Duplicate code found (appears 6 times)
const ColumnSpacer(2),
Duplication
Line 202
Duplicate code found (appears 6 times)
const ColumnSpacer(2),
Duplication
Line 280
Duplicate code found (appears 6 times)
const ColumnSpacer(2),
Duplication
Line 282
Duplicate code found (appears 6 times)
const ColumnSpacer(2),
Duplication
Line 113
Duplicate code found (appears 3 times)
onChanged: (newValue) {
Duplication
Line 139
Duplicate code found (appears 3 times)
onChanged: (newValue) {
Duplication
Line 212
Duplicate code found (appears 3 times)
onChanged: (newValue) {
Duplication
Line 118
Duplicate code found (appears 2 times)
selectedCategory = null;
Duplication
Line 441
Duplicate code found (appears 2 times)
selectedCategory = null;
Duplication
Line 121
Duplicate code found (appears 3 times)
selectedBranch = null;
Duplication
Line 153
Duplicate code found (appears 3 times)
selectedBranch = null;
Duplication
Line 452
Duplicate code found (appears 3 times)
selectedBranch = null;
Duplication
Line 126
Duplicate code found (appears 5 times)
const ColumnSpacer(5),
Duplication
Line 172
Duplicate code found (appears 5 times)
const ColumnSpacer(5),
Duplication
Line 196
Duplicate code found (appears 5 times)
const ColumnSpacer(5),
Duplication
Line 241
Duplicate code found (appears 5 times)
const ColumnSpacer(5),
Duplication
Line 274
Duplicate code found (appears 5 times)
const ColumnSpacer(5),
Duplication
Line 155
Duplicate code found (appears 2 times)
branchId = selectedBranch?.id;
Duplication
Line 454
Duplicate code found (appears 2 times)
branchId = selectedBranch?.id;
Duplication
Line 160
Duplicate code found (appears 2 times)
const ColumnSpacer(1),
Duplication
Line 298
Duplicate code found (appears 2 times)
const ColumnSpacer(1),
Duplication
Line 183
Duplicate code found (appears 3 times)
onChanged: (text) {},
Duplication
Line 237
Duplicate code found (appears 3 times)
onChanged: (text) {},
Duplication
Line 264
Duplicate code found (appears 3 times)
onChanged: (text) {},
Duplication
Line 185
Duplicate code found (appears 2 times)
FilteringTextInputFormatter.allow(
Duplication
Line 266
Duplicate code found (appears 2 times)
FilteringTextInputFormatter.allow(
Duplication
Line 189
Duplicate code found (appears 2 times)
maxLength: InputLength.subjectLength,
Duplication
Line 239
Duplicate code found (appears 2 times)
maxLength: InputLength.subjectLength,
Duplication
Line 232
Duplicate code found (appears 2 times)
const ColumnSpacer(3),
Duplication
Line 247
Duplicate code found (appears 2 times)
const ColumnSpacer(3),
Duplication
Line 363
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(8),
Duplication
Line 377
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(8),
Duplication
Line 375
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 397
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 416
Duplicate code found (appears 5 times)
_progressNotifier.value = true;
Duplication
Line 434
Duplicate code found (appears 5 times)
_progressNotifier.value = true;
Duplication
Line 469
Duplicate code found (appears 5 times)
_progressNotifier.value = true;
Duplication
Line 634
Duplicate code found (appears 5 times)
_progressNotifier.value = true;
Duplication
Line 663
Duplicate code found (appears 5 times)
_progressNotifier.value = true;
Duplication
Line 425
Duplicate code found (appears 4 times)
AlertUtil.showError(context, message.toString());
Duplication
Line 460
Duplicate code found (appears 4 times)
AlertUtil.showError(context, message.toString());
Duplication
Line 478
Duplicate code found (appears 4 times)
AlertUtil.showError(context, message.toString());
Duplication
Line 645
Duplicate code found (appears 4 times)
AlertUtil.showError(context, message.toString());
Duplication
Line 428
Duplicate code found (appears 5 times)
_progressNotifier.value = false;
Duplication
Line 463
Duplicate code found (appears 5 times)
_progressNotifier.value = false;
Duplication
Line 481
Duplicate code found (appears 5 times)
_progressNotifier.value = false;
Duplication
Line 650
Duplicate code found (appears 5 times)
_progressNotifier.value = false;
Duplication
Line 693
Duplicate code found (appears 5 times)
_progressNotifier.value = false;
Duplication
Line 499
Duplicate code found (appears 2 times)
final RegExp regex = RegExp(r"^[a-zA-Z0-9\s]+$");
Duplication
Line 516
Duplicate code found (appears 2 times)
final RegExp regex = RegExp(r"^[a-zA-Z0-9\s]+$");
Duplication
Line 617
Duplicate code found (appears 2 times)
Function(bool? isSuccess)? onComplete,
Duplication
Line 661
Duplicate code found (appears 2 times)
Function(bool? isSuccess)? onComplete,
Duplication
Line 620
Duplicate code found (appears 2 times)
onComplete?.call(false);
Duplication
Line 690
Duplicate code found (appears 2 times)
onComplete?.call(false);
Unused Import
Line 1
Unused import: dart:io
import "dart:io";
Long Method
Line 80
Method is too long (270 lines)
Widget build(BuildContext context) {
Potential Bug
Line 573
Null check without null-aware operator (?.)
if (result != null) {
Potential Bug
Line 578
Null check without null-aware operator (?.)
if (element != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\u_connect\u_connect_screen.dart

Metric Value
Total Lines 391
Code Lines 366
Comment Lines 1
Comment Density 0.3%
Total Issues 39

Issues Found:

Duplication
Line 59
Duplicate code found (appears 4 times)
pageNumber: currentPage,
Duplication
Line 108
Duplicate code found (appears 4 times)
pageNumber: currentPage,
Duplication
Line 170
Duplicate code found (appears 4 times)
pageNumber: currentPage,
Duplication
Line 367
Duplicate code found (appears 4 times)
pageNumber: currentPage,
Duplication
Line 60
Duplicate code found (appears 4 times)
type: UConnectType.values
Duplication
Line 109
Duplicate code found (appears 4 times)
type: UConnectType.values
Duplication
Line 171
Duplicate code found (appears 4 times)
type: UConnectType.values
Duplication
Line 357
Duplicate code found (appears 4 times)
type: UConnectType.values
Duplication
Line 63
Duplicate code found (appears 3 times)
e.name.toLowerCase().replaceAll(" ", "") ==
Duplication
Line 174
Duplicate code found (appears 3 times)
e.name.toLowerCase().replaceAll(" ", "") ==
Duplication
Line 360
Duplicate code found (appears 3 times)
e.name.toLowerCase().replaceAll(" ", "") ==
Duplication
Line 64
Duplicate code found (appears 4 times)
_rawCategoryList["text"]
Duplication
Line 115
Duplicate code found (appears 4 times)
_rawCategoryList["text"]
Duplication
Line 175
Duplicate code found (appears 4 times)
_rawCategoryList["text"]
Duplication
Line 361
Duplicate code found (appears 4 times)
_rawCategoryList["text"]
Duplication
Line 67
Duplicate code found (appears 4 times)
.replaceAll(" ", ""),
Duplication
Line 118
Duplicate code found (appears 4 times)
.replaceAll(" ", ""),
Duplication
Line 178
Duplicate code found (appears 4 times)
.replaceAll(" ", ""),
Duplication
Line 364
Duplicate code found (appears 4 times)
.replaceAll(" ", ""),
Duplication
Line 84
Duplicate code found (appears 3 times)
padding: EdgeInsets.only(
Duplication
Line 194
Duplicate code found (appears 3 times)
padding: EdgeInsets.only(
Duplication
Line 221
Duplicate code found (appears 3 times)
padding: EdgeInsets.only(
Duplication
Line 86
Duplicate code found (appears 2 times)
left: Ui.getPadding(2),
Duplication
Line 195
Duplicate code found (appears 2 times)
left: Ui.getPadding(2),
Duplication
Line 87
Duplicate code found (appears 2 times)
right: Ui.getPadding(2),
Duplication
Line 196
Duplicate code found (appears 2 times)
right: Ui.getPadding(2),
Duplication
Line 105
Duplicate code found (appears 2 times)
uConnectTicketList.clear();
Duplication
Line 168
Duplicate code found (appears 2 times)
uConnectTicketList.clear();
Duplication
Line 107
Duplicate code found (appears 2 times)
getUConnectTicketList(
Duplication
Line 169
Duplicate code found (appears 2 times)
getUConnectTicketList(
Duplication
Line 133
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 263
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 135
Duplicate code found (appears 4 times)
borderRadius: BorderRadius.circular(Ui.getRadius(1.5)),
Duplication
Line 300
Duplicate code found (appears 4 times)
borderRadius: BorderRadius.circular(Ui.getRadius(1.5)),
Duplication
Line 305
Duplicate code found (appears 4 times)
borderRadius: BorderRadius.circular(Ui.getRadius(1.5)),
Duplication
Line 308
Duplicate code found (appears 4 times)
borderRadius: BorderRadius.circular(Ui.getRadius(1.5)),
Long Method
Line 77
Method is too long (172 lines)
Widget build(BuildContext context) {
Dead Code
Line 346
Private method '_onScroll' is never called
void _onScroll() async {
Potential Bug
Line 326
Null check without null-aware operator (?.)
if (ticketList != null && ticketList.isNotEmpty) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\u_connect\chat_bubble\chat_bubble.dart

Metric Value
Total Lines 269
Code Lines 256
Comment Lines 0
Comment Density 0.0%
Total Issues 51

Issues Found:

Duplication
Line 39
Duplicate code found (appears 2 times)
crossAxisAlignment: (threadDetail.isCustomer ?? false)
Duplication
Line 65
Duplicate code found (appears 2 times)
crossAxisAlignment: (threadDetail.isCustomer ?? false)
Duplication
Line 40
Duplicate code found (appears 2 times)
? CrossAxisAlignment.end
Duplication
Line 66
Duplicate code found (appears 2 times)
? CrossAxisAlignment.end
Duplication
Line 41
Duplicate code found (appears 2 times)
: CrossAxisAlignment.start,
Duplication
Line 67
Duplicate code found (appears 2 times)
: CrossAxisAlignment.start,
Duplication
Line 45
Duplicate code found (appears 3 times)
? MainAxisAlignment.end
Duplication
Line 117
Duplicate code found (appears 3 times)
? MainAxisAlignment.end
Duplication
Line 134
Duplicate code found (appears 3 times)
? MainAxisAlignment.end
Duplication
Line 46
Duplicate code found (appears 3 times)
: MainAxisAlignment.start,
Duplication
Line 118
Duplicate code found (appears 3 times)
: MainAxisAlignment.start,
Duplication
Line 135
Duplicate code found (appears 3 times)
: MainAxisAlignment.start,
Duplication
Line 70
Duplicate code found (appears 2 times)
alignment: Alignment.topLeft,
Duplication
Line 78
Duplicate code found (appears 2 times)
alignment: Alignment.topLeft,
Duplication
Line 76
Duplicate code found (appears 3 times)
const ColumnSpacer(0.5),
Duplication
Line 86
Duplicate code found (appears 3 times)
const ColumnSpacer(0.5),
Duplication
Line 88
Duplicate code found (appears 3 times)
const ColumnSpacer(0.5),
Duplication
Line 90
Duplicate code found (appears 2 times)
alignment: Alignment.bottomLeft,
Duplication
Line 259
Duplicate code found (appears 2 times)
alignment: Alignment.bottomLeft,
Duplication
Line 96
Duplicate code found (appears 2 times)
color: AppColors.grey1,
Duplication
Line 263
Duplicate code found (appears 2 times)
color: AppColors.grey1,
Duplication
Line 97
Duplicate code found (appears 2 times)
fontStyle: FontStyle.italic,
Duplication
Line 264
Duplicate code found (appears 2 times)
fontStyle: FontStyle.italic,
Duplication
Line 116
Duplicate code found (appears 2 times)
mainAxisAlignment: threadDetail.isCustomer ?? false
Duplication
Line 133
Duplicate code found (appears 2 times)
mainAxisAlignment: threadDetail.isCustomer ?? false
Duplication
Line 154
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(Ui.getPadding(0.5)),
Duplication
Line 167
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(Ui.getPadding(0.5)),
Duplication
Line 156
Duplicate code found (appears 2 times)
width: Ui.getPadding(8),
Duplication
Line 169
Duplicate code found (appears 2 times)
width: Ui.getPadding(8),
Duplication
Line 157
Duplicate code found (appears 2 times)
height: Ui.getPadding(8),
Duplication
Line 170
Duplicate code found (appears 2 times)
height: Ui.getPadding(8),
Duplication
Line 158
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 171
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 196
Duplicate code found (appears 3 times)
if (response.statusCode == 200) {
Duplication
Line 206
Duplicate code found (appears 3 times)
if (response.statusCode == 200) {
Duplication
Line 230
Duplicate code found (appears 3 times)
if (response.statusCode == 200) {
Duplication
Line 201
Duplicate code found (appears 2 times)
final tempDir = await getTemporaryDirectory();
Duplication
Line 225
Duplicate code found (appears 2 times)
final tempDir = await getTemporaryDirectory();
Duplication
Line 202
Duplicate code found (appears 2 times)
final tempFilePath = "${tempDir.path}/${uri.pathSegments.last}";
Duplication
Line 226
Duplicate code found (appears 2 times)
final tempFilePath = "${tempDir.path}/${uri.pathSegments.last}";
Duplication
Line 204
Duplicate code found (appears 2 times)
final response = await Dio().download(attachment, tempFilePath);
Duplication
Line 228
Duplicate code found (appears 2 times)
final response = await Dio().download(attachment, tempFilePath);
Duplication
Line 207
Duplicate code found (appears 2 times)
await OpenFile.open(tempFilePath);
Duplication
Line 231
Duplicate code found (appears 2 times)
await OpenFile.open(tempFilePath);
Duplication
Line 208
Duplicate code found (appears 4 times)
progressNotifier?.value = false;
Duplication
Line 214
Duplicate code found (appears 4 times)
progressNotifier?.value = false;
Duplication
Line 221
Duplicate code found (appears 4 times)
progressNotifier?.value = false;
Duplication
Line 246
Duplicate code found (appears 4 times)
progressNotifier?.value = false;
Long Method
Line 33
Method is too long (96 lines)
Widget build(BuildContext context) {
Long Method
Line 131
Method is too long (54 lines)
Widget attachmentList(BuildContext context) {
Potential Bug
Line 254
Null check without null-aware operator (?.)
final formattedDate = messageDate != null

C:\Users\PM_User\Documents\upay-mobile\lib\screens\u_connect\widget\ticket_custom_widget.dart

Metric Value
Total Lines 155
Code Lines 152
Comment Lines 0
Comment Density 0.0%
Total Issues 38

Issues Found:

Duplication
Line 53
Duplicate code found (appears 5 times)
const ColumnSpacer(1),
Duplication
Line 78
Duplicate code found (appears 5 times)
const ColumnSpacer(1),
Duplication
Line 103
Duplicate code found (appears 5 times)
const ColumnSpacer(1),
Duplication
Line 125
Duplicate code found (appears 5 times)
const ColumnSpacer(1),
Duplication
Line 149
Duplicate code found (appears 5 times)
const ColumnSpacer(1),
Duplication
Line 55
Duplicate code found (appears 4 times)
padding: EdgeInsets.only(
Duplication
Line 80
Duplicate code found (appears 4 times)
padding: EdgeInsets.only(
Duplication
Line 105
Duplicate code found (appears 4 times)
padding: EdgeInsets.only(
Duplication
Line 127
Duplicate code found (appears 4 times)
padding: EdgeInsets.only(
Duplication
Line 56
Duplicate code found (appears 4 times)
left: Ui.getPadding(1),
Duplication
Line 81
Duplicate code found (appears 4 times)
left: Ui.getPadding(1),
Duplication
Line 106
Duplicate code found (appears 4 times)
left: Ui.getPadding(1),
Duplication
Line 128
Duplicate code found (appears 4 times)
left: Ui.getPadding(1),
Duplication
Line 57
Duplicate code found (appears 4 times)
right: Ui.getPadding(1),
Duplication
Line 82
Duplicate code found (appears 4 times)
right: Ui.getPadding(1),
Duplication
Line 107
Duplicate code found (appears 4 times)
right: Ui.getPadding(1),
Duplication
Line 129
Duplicate code found (appears 4 times)
right: Ui.getPadding(1),
Duplication
Line 60
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 85
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 110
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 132
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 64
Duplicate code found (appears 8 times)
textAlign: TextAlign.center,
Duplication
Line 72
Duplicate code found (appears 8 times)
textAlign: TextAlign.center,
Duplication
Line 89
Duplicate code found (appears 8 times)
textAlign: TextAlign.center,
Duplication
Line 97
Duplicate code found (appears 8 times)
textAlign: TextAlign.center,
Duplication
Line 114
Duplicate code found (appears 8 times)
textAlign: TextAlign.center,
Duplication
Line 119
Duplicate code found (appears 8 times)
textAlign: TextAlign.center,
Duplication
Line 136
Duplicate code found (appears 8 times)
textAlign: TextAlign.center,
Duplication
Line 143
Duplicate code found (appears 8 times)
textAlign: TextAlign.center,
Duplication
Line 65
Duplicate code found (appears 2 times)
style: TextStyles.semiBold,
Duplication
Line 73
Duplicate code found (appears 2 times)
style: TextStyles.semiBold,
Duplication
Line 90
Duplicate code found (appears 6 times)
style: TextStyles.semiBold2,
Duplication
Line 98
Duplicate code found (appears 6 times)
style: TextStyles.semiBold2,
Duplication
Line 115
Duplicate code found (appears 6 times)
style: TextStyles.semiBold2,
Duplication
Line 120
Duplicate code found (appears 6 times)
style: TextStyles.semiBold2,
Duplication
Line 137
Duplicate code found (appears 6 times)
style: TextStyles.semiBold2,
Duplication
Line 144
Duplicate code found (appears 6 times)
style: TextStyles.semiBold2,
Long Method
Line 26
Method is too long (128 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\u_connect\widget\tread_tile.dart

Metric Value
Total Lines 204
Code Lines 195
Comment Lines 0
Comment Density 0.0%
Total Issues 20

Issues Found:

Duplication
Line 62
Duplicate code found (appears 2 times)
duration: const Duration(milliseconds: Ui.animationDuration),
Duplication
Line 103
Duplicate code found (appears 2 times)
duration: const Duration(milliseconds: Ui.animationDuration),
Duplication
Line 63
Duplicate code found (appears 2 times)
curve: Curves.easeInOut,
Duplication
Line 104
Duplicate code found (appears 2 times)
curve: Curves.easeInOut,
Duplication
Line 71
Duplicate code found (appears 2 times)
color: AppColors.blue,
Duplication
Line 142
Duplicate code found (appears 2 times)
color: AppColors.blue,
Duplication
Line 88
Duplicate code found (appears 2 times)
style: const TextStyle(
Duplication
Line 188
Duplicate code found (appears 2 times)
style: const TextStyle(
Duplication
Line 89
Duplicate code found (appears 3 times)
color: AppColors.black,
Duplication
Line 167
Duplicate code found (appears 3 times)
color: AppColors.black,
Duplication
Line 189
Duplicate code found (appears 3 times)
color: AppColors.black,
Duplication
Line 106
Duplicate code found (appears 3 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 111
Duplicate code found (appears 3 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 117
Duplicate code found (appears 3 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 163
Duplicate code found (appears 2 times)
? const SizedBox.shrink()
Duplication
Line 185
Duplicate code found (appears 2 times)
? const SizedBox.shrink()
Duplication
Line 168
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w600,
Duplication
Line 190
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w600,
Long Method
Line 51
Method is too long (152 lines)
Widget build(BuildContext context) {
Potential Bug
Line 122
Null check without null-aware operator (?.)
: (widget.body != null &&

C:\Users\PM_User\Documents\upay-mobile\lib\screens\u_earn\invite_via_sms_screen.dart

Metric Value
Total Lines 132
Code Lines 123
Comment Lines 1
Comment Density 0.8%
Total Issues 1

Issues Found:

Long Method
Line 37
Method is too long (67 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\u_earn\registerd_invitees_screen.dart

Metric Value
Total Lines 298
Code Lines 248
Comment Lines 36
Comment Density 14.5%
Total Issues 33

Issues Found:

Duplication
Line 53
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(
Duplication
Line 200
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(
Duplication
Line 58
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 180
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 68
Duplicate code found (appears 3 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 79
Duplicate code found (appears 3 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 102
Duplicate code found (appears 3 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 69
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.4),
Duplication
Line 81
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.4),
Duplication
Line 70
Duplicate code found (appears 2 times)
fontWeight: FontWeight.bold,
Duplication
Line 82
Duplicate code found (appears 2 times)
fontWeight: FontWeight.bold,
Duplication
Line 89
Duplicate code found (appears 5 times)
height: Ui.getPadding(2),
Duplication
Line 98
Duplicate code found (appears 5 times)
height: Ui.getPadding(2),
Duplication
Line 108
Duplicate code found (appears 5 times)
height: Ui.getPadding(2),
Duplication
Line 184
Duplicate code found (appears 5 times)
height: Ui.getPadding(2),
Duplication
Line 193
Duplicate code found (appears 5 times)
height: Ui.getPadding(2),
Duplication
Line 224
Duplicate code found (appears 3 times)
onFail: (title, message, data) {
Duplication
Line 244
Duplicate code found (appears 3 times)
onFail: (title, message, data) {
Duplication
Line 258
Duplicate code found (appears 3 times)
onFail: (title, message, data) {
Duplication
Line 225
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message);
Duplication
Line 245
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message);
Duplication
Line 259
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message);
Duplication
Line 227
Duplicate code found (appears 3 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 247
Duplicate code found (appears 3 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 261
Duplicate code found (appears 3 times)
onComplete: () => _progressNotifier.value = false,
Duplication
Line 234
Duplicate code found (appears 2 times)
_progressNotifier.value = true;
Duplication
Line 252
Duplicate code found (appears 2 times)
_progressNotifier.value = true;
Duplication
Line 238
Duplicate code found (appears 2 times)
onSuccess: (title, message, data) {
Duplication
Line 255
Duplicate code found (appears 2 times)
onSuccess: (title, message, data) {
Duplication
Line 242
Duplicate code found (appears 2 times)
AlertUtil.showSuccess(context, "remind_send_success");
Duplication
Line 256
Duplicate code found (appears 2 times)
AlertUtil.showSuccess(context, "remind_send_success");
Long Method
Line 45
Method is too long (168 lines)
Widget build(BuildContext context) {
Dead Code
Line 251
Private method '_resendReferralALl' is never called
void _resendReferralALl() async {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\u_earn\uearn_qr_screen.dart

Metric Value
Total Lines 49
Code Lines 46
Comment Lines 0
Comment Density 0.0%
Total Issues 2

Issues Found:

Unused Import
Line 1
Unused import: dart:convert
import "dart:convert";
Long Method
Line 21
Method is too long (27 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\u_earn\u_earn_screen.dart

Metric Value
Total Lines 595
Code Lines 568
Comment Lines 0
Comment Density 0.0%
Total Issues 88

Issues Found:

Duplication
Line 80
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message);
Duplication
Line 539
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message);
Duplication
Line 567
Duplicate code found (appears 3 times)
AlertUtil.showError(context, message);
Duplication
Line 105
Duplicate code found (appears 2 times)
top: Ui.getPadding(2),
Duplication
Line 156
Duplicate code found (appears 2 times)
top: Ui.getPadding(2),
Duplication
Line 109
Duplicate code found (appears 3 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 243
Duplicate code found (appears 3 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 413
Duplicate code found (appears 3 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 113
Duplicate code found (appears 3 times)
padding: EdgeInsets.symmetric(horizontal: Ui.getPadding(3)),
Duplication
Line 125
Duplicate code found (appears 3 times)
padding: EdgeInsets.symmetric(horizontal: Ui.getPadding(3)),
Duplication
Line 136
Duplicate code found (appears 3 times)
padding: EdgeInsets.symmetric(horizontal: Ui.getPadding(3)),
Duplication
Line 116
Duplicate code found (appears 7 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 128
Duplicate code found (appears 7 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 141
Duplicate code found (appears 7 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 232
Duplicate code found (appears 7 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 417
Duplicate code found (appears 7 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 428
Duplicate code found (appears 7 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 439
Duplicate code found (appears 7 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 118
Duplicate code found (appears 3 times)
fontWeight: FontWeight.w500,
Duplication
Line 419
Duplicate code found (appears 3 times)
fontWeight: FontWeight.w500,
Duplication
Line 430
Duplicate code found (appears 3 times)
fontWeight: FontWeight.w500,
Duplication
Line 123
Duplicate code found (appears 6 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 134
Duplicate code found (appears 6 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 271
Duplicate code found (appears 6 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 448
Duplicate code found (appears 6 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 456
Duplicate code found (appears 6 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 472
Duplicate code found (appears 6 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 129
Duplicate code found (appears 3 times)
color: AppColors.black1.withOpacity(0.7),
Duplication
Line 142
Duplicate code found (appears 3 times)
color: AppColors.black1.withOpacity(0.7),
Duplication
Line 233
Duplicate code found (appears 3 times)
color: AppColors.black1.withOpacity(0.7),
Duplication
Line 137
Duplicate code found (appears 2 times)
child: GestureDetector(
Duplication
Line 228
Duplicate code found (appears 2 times)
child: GestureDetector(
Duplication
Line 143
Duplicate code found (appears 3 times)
fontSize: Ui.getFontSize(0.9),
Duplication
Line 234
Duplicate code found (appears 3 times)
fontSize: Ui.getFontSize(0.9),
Duplication
Line 453
Duplicate code found (appears 3 times)
fontSize: Ui.getFontSize(0.9),
Duplication
Line 144
Duplicate code found (appears 2 times)
decoration: TextDecoration.underline,
Duplication
Line 235
Duplicate code found (appears 2 times)
decoration: TextDecoration.underline,
Duplication
Line 151
Duplicate code found (appears 2 times)
builder: (context, snapshot) {
Duplication
Line 355
Duplicate code found (appears 2 times)
builder: (context, snapshot) {
Duplication
Line 153
Duplicate code found (appears 2 times)
if (snapshot.hasData) {
Duplication
Line 356
Duplicate code found (appears 2 times)
if (snapshot.hasData) {
Duplication
Line 169
Duplicate code found (appears 2 times)
amount: getLangReplaced(
Duplication
Line 188
Duplicate code found (appears 2 times)
amount: getLangReplaced(
Duplication
Line 173
Duplicate code found (appears 2 times)
AmountUtil.formatDoubleAmount(
Duplication
Line 192
Duplicate code found (appears 2 times)
AmountUtil.formatDoubleAmount(
Duplication
Line 183
Duplicate code found (appears 2 times)
indent: Ui.getPadding(2),
Duplication
Line 203
Duplicate code found (appears 2 times)
indent: Ui.getPadding(2),
Duplication
Line 184
Duplicate code found (appears 2 times)
endIndent: Ui.getPadding(2),
Duplication
Line 204
Duplicate code found (appears 2 times)
endIndent: Ui.getPadding(2),
Duplication
Line 242
Duplicate code found (appears 2 times)
mainAxisAlignment: MainAxisAlignment.spaceAround,
Duplication
Line 287
Duplicate code found (appears 2 times)
mainAxisAlignment: MainAxisAlignment.spaceAround,
Duplication
Line 246
Duplicate code found (appears 6 times)
child: UEarnOptionButtons(
Duplication
Line 253
Duplicate code found (appears 6 times)
child: UEarnOptionButtons(
Duplication
Line 263
Duplicate code found (appears 6 times)
child: UEarnOptionButtons(
Duplication
Line 290
Duplicate code found (appears 6 times)
child: UEarnOptionButtons(
Duplication
Line 299
Duplicate code found (appears 6 times)
child: UEarnOptionButtons(
Duplication
Line 308
Duplicate code found (appears 6 times)
child: UEarnOptionButtons(
Duplication
Line 281
Duplicate code found (appears 4 times)
await AlertUtil.showDefault(
Duplication
Line 328
Duplicate code found (appears 4 times)
await AlertUtil.showDefault(
Duplication
Line 345
Duplicate code found (appears 4 times)
await AlertUtil.showDefault(
Duplication
Line 392
Duplicate code found (appears 4 times)
await AlertUtil.showDefault(
Duplication
Line 283
Duplicate code found (appears 4 times)
leftTopTitleNotifier: _leftTopTitleNotifier,
Duplication
Line 331
Duplicate code found (appears 4 times)
leftTopTitleNotifier: _leftTopTitleNotifier,
Duplication
Line 348
Duplicate code found (appears 4 times)
leftTopTitleNotifier: _leftTopTitleNotifier,
Duplication
Line 394
Duplicate code found (appears 4 times)
leftTopTitleNotifier: _leftTopTitleNotifier,
Duplication
Line 322
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(4)),
Duplication
Line 333
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(4)),
Duplication
Line 397
Duplicate code found (appears 2 times)
_redeemBottomSheetNotifier.value = UEarnRedeemType.upayPayment;
Duplication
Line 525
Duplicate code found (appears 2 times)
_redeemBottomSheetNotifier.value = UEarnRedeemType.upayPayment;
Duplication
Line 398
Duplicate code found (appears 2 times)
_leftTopTitleNotifier.value = "Close";
Duplication
Line 526
Duplicate code found (appears 2 times)
_leftTopTitleNotifier.value = "Close";
Duplication
Line 409
Duplicate code found (appears 2 times)
width: ScreenUtil.width,
Duplication
Line 500
Duplicate code found (appears 2 times)
width: ScreenUtil.width,
Duplication
Line 418
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.3),
Duplication
Line 429
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.3),
Duplication
Line 461
Duplicate code found (appears 2 times)
redeemTypeNotifier: _redeemBottomSheetNotifier,
Duplication
Line 474
Duplicate code found (appears 2 times)
redeemTypeNotifier: _redeemBottomSheetNotifier,
Duplication
Line 538
Duplicate code found (appears 2 times)
onFail: (title, message, data) {
Duplication
Line 566
Duplicate code found (appears 2 times)
onFail: (title, message, data) {
Unused Import
Line 1
Unused import: dart:convert
import "dart:convert";
Unused Import
Line 2
Unused import: dart:io
import "dart:io";
Long Method
Line 95
Method is too long (183 lines)
Widget build(BuildContext context) {
Dead Code
Line 280
Private method '_showInviteBottomSheet' is never called
void _showInviteBottomSheet() async {
Dead Code
Line 327
Private method '_showLearnMoreBottomSheet' is never called
void _showLearnMoreBottomSheet() async {
Dead Code
Line 344
Private method '_showTermsAndConditionBottomSheet' is never called
void _showTermsAndConditionBottomSheet() async {
Dead Code
Line 391
Private method '_showRedeemBottomSheet' is never called
void _showRedeemBottomSheet() async {
Potential Bug
Line 556
Null check without null-aware operator (?.)
if (shareType == UEarnShareType.link && link != null) {
Potential Bug
Line 561
Null check without null-aware operator (?.)
if (shareType == UEarnShareType.qr && link != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\add_your_account_view.dart

Metric Value
Total Lines 80
Code Lines 77
Comment Lines 0
Comment Density 0.0%
Total Issues 2

Issues Found:

Duplication
Line 36
Duplicate code found (appears 2 times)
width: Ui.getPadding(45.5),
Duplication
Line 65
Duplicate code found (appears 2 times)
width: Ui.getPadding(45.5),

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\add_your_sdb_account_view.dart

Metric Value
Total Lines 22
Code Lines 19
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\app_logo.dart

Metric Value
Total Lines 21
Code Lines 18
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\bottom_sheet_header.dart

Metric Value
Total Lines 71
Code Lines 65
Comment Lines 2
Comment Density 3.1%
Total Issues 2

Issues Found:

Duplication
Line 20
Duplicate code found (appears 2 times)
height: Ui.getPadding(1),
Duplication
Line 56
Duplicate code found (appears 2 times)
height: Ui.getPadding(1),

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\carousel_indicator.dart

Metric Value
Total Lines 45
Code Lines 42
Comment Lines 0
Comment Density 0.0%
Total Issues 3

Issues Found:

Duplication
Line 28
Duplicate code found (appears 2 times)
enlargeActive && (current == list!.indexOf(e)) ? 16.0 : 6.0,
Duplication
Line 30
Duplicate code found (appears 2 times)
enlargeActive && (current == list!.indexOf(e)) ? 16.0 : 6.0,
Long Method
Line 20
Method is too long (24 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\center_loader.dart

Metric Value
Total Lines 21
Code Lines 19
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\circle_network_image.dart

Metric Value
Total Lines 75
Code Lines 70
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\circular_grid_item.dart

Metric Value
Total Lines 138
Code Lines 131
Comment Lines 3
Comment Density 2.3%
Total Issues 24

Issues Found:

Duplication
Line 49
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 80
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 50
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 81
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 51
Duplicate code found (appears 2 times)
shape: BoxShape.circle,
Duplication
Line 82
Duplicate code found (appears 2 times)
shape: BoxShape.circle,
Duplication
Line 55
Duplicate code found (appears 2 times)
color: AppColors.grey4,
Duplication
Line 87
Duplicate code found (appears 2 times)
color: AppColors.grey4,
Duplication
Line 56
Duplicate code found (appears 2 times)
blurRadius: Ui.getPadding(1),
Duplication
Line 88
Duplicate code found (appears 2 times)
blurRadius: Ui.getPadding(1),
Duplication
Line 57
Duplicate code found (appears 2 times)
offset: Offset(0, Ui.getPadding(1)),
Duplication
Line 89
Duplicate code found (appears 2 times)
offset: Offset(0, Ui.getPadding(1)),
Duplication
Line 61
Duplicate code found (appears 2 times)
clipBehavior: Clip.antiAlias,
Duplication
Line 93
Duplicate code found (appears 2 times)
clipBehavior: Clip.antiAlias,
Duplication
Line 64
Duplicate code found (appears 2 times)
backgroundColor: AppColors.white,
Duplication
Line 74
Duplicate code found (appears 2 times)
backgroundColor: AppColors.white,
Duplication
Line 102
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(
Duplication
Line 119
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(
Duplication
Line 107
Duplicate code found (appears 2 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 124
Duplicate code found (appears 2 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 112
Duplicate code found (appears 2 times)
textAlign: TextAlign.center,
Duplication
Line 129
Duplicate code found (appears 2 times)
textAlign: TextAlign.center,
Long Method
Line 35
Method is too long (102 lines)
Widget build(BuildContext context) {
Potential Bug
Line 117
Null check without null-aware operator (?.)
if (bottomText2 != null)

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\column_spacer.dart

Metric Value
Total Lines 15
Code Lines 12
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\custom_bottom_navbar.dart

Metric Value
Total Lines 130
Code Lines 122
Comment Lines 4
Comment Density 3.3%
Total Issues 13

Issues Found:

Duplication
Line 31
Duplicate code found (appears 3 times)
child: GestureDetector(
Duplication
Line 62
Duplicate code found (appears 3 times)
child: GestureDetector(
Duplication
Line 94
Duplicate code found (appears 3 times)
child: GestureDetector(
Duplication
Line 35
Duplicate code found (appears 3 times)
AlertUtil.showError(context, "sign_up_bottom_bar_text");
Duplication
Line 69
Duplicate code found (appears 3 times)
AlertUtil.showError(context, "sign_up_bottom_bar_text");
Duplication
Line 97
Duplicate code found (appears 3 times)
AlertUtil.showError(context, "sign_up_bottom_bar_text");
Duplication
Line 36
Duplicate code found (appears 2 times)
} else if (ModalRoute.of(context)?.settings.name !=
Duplication
Line 98
Duplicate code found (appears 2 times)
} else if (ModalRoute.of(context)?.settings.name !=
Duplication
Line 45
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 110
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 53
Duplicate code found (appears 2 times)
style: TextStyles.homeGridText,
Duplication
Line 118
Duplicate code found (appears 2 times)
style: TextStyles.homeGridText,
Long Method
Line 24
Method is too long (105 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\custom_divider.dart

Metric Value
Total Lines 16
Code Lines 14
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\custom_error.dart

Metric Value
Total Lines 16
Code Lines 14
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\custom_image.dart

Metric Value
Total Lines 67
Code Lines 64
Comment Lines 0
Comment Density 0.0%
Total Issues 3

Issues Found:

Duplication
Line 45
Duplicate code found (appears 2 times)
size: Ui.getPadding(5),
Duplication
Line 53
Duplicate code found (appears 2 times)
size: Ui.getPadding(5),
Long Method
Line 25
Method is too long (41 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\error_image.dart

Metric Value
Total Lines 19
Code Lines 16
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\grid_view_animation.dart

Metric Value
Total Lines 26
Code Lines 25
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\home_app_bar_bottom.dart

Metric Value
Total Lines 155
Code Lines 118
Comment Lines 24
Comment Density 20.3%
Total Issues 5

Issues Found:

Duplication
Line 65
Duplicate code found (appears 2 times)
style: TextStyles.defaultTextWhite,
Duplication
Line 88
Duplicate code found (appears 2 times)
style: TextStyles.defaultTextWhite,
Dead Code
Line 150
Private method '_onExploreAppTap' is never called
void _onExploreAppTap() {
Potential Bug
Line 76
Null check without null-aware operator (?.)
appState.statePointBalance != null &&
Potential Bug
Line 98
Null check without null-aware operator (?.)
// if (snapshot.hasData && (snapshot.data != null)) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\language_select_tile.dart

Metric Value
Total Lines 63
Code Lines 58
Comment Lines 2
Comment Density 3.4%
Total Issues 1

Issues Found:

Long Method
Line 22
Method is too long (40 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\maintenance.dart

Metric Value
Total Lines 45
Code Lines 43
Comment Lines 0
Comment Density 0.0%
Total Issues 1

Issues Found:

Long Method
Line 14
Method is too long (30 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\main_button.dart

Metric Value
Total Lines 111
Code Lines 103
Comment Lines 5
Comment Density 4.9%
Total Issues 4

Issues Found:

Long Method
Line 28
Method is too long (82 lines)
Widget build(BuildContext context) {
Potential Bug
Line 58
Null check without null-aware operator (?.)
child: textReplaceImage != null
Potential Bug
Line 69
Null check without null-aware operator (?.)
...(prefixIcon != null
Potential Bug
Line 93
Null check without null-aware operator (?.)
...(suffixIcon != null

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\navigation_drawer.dart

Metric Value
Total Lines 587
Code Lines 539
Comment Lines 23
Comment Density 4.3%
Total Issues 56

Issues Found:

Duplication
Line 76
Duplicate code found (appears 3 times)
naviagtionRoute: ScreenRoutes.toMyWalletScreen,
Duplication
Line 80
Duplicate code found (appears 3 times)
naviagtionRoute: ScreenRoutes.toMyWalletScreen,
Duplication
Line 85
Duplicate code found (appears 3 times)
naviagtionRoute: ScreenRoutes.toMyWalletScreen,
Duplication
Line 113
Duplicate code found (appears 3 times)
naviagtionRoute: ScreenRoutes.toMyAccountScreen,
Duplication
Line 117
Duplicate code found (appears 3 times)
naviagtionRoute: ScreenRoutes.toMyAccountScreen,
Duplication
Line 122
Duplicate code found (appears 3 times)
naviagtionRoute: ScreenRoutes.toMyAccountScreen,
Duplication
Line 160
Duplicate code found (appears 2 times)
onTap: () => ExploreAppUserBlocker.blockIfExploreAppUser(
Duplication
Line 202
Duplicate code found (appears 2 times)
onTap: () => ExploreAppUserBlocker.blockIfExploreAppUser(
Duplication
Line 173
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1),
Duplication
Line 314
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1),
Duplication
Line 177
Duplicate code found (appears 2 times)
leading: item.icon == null
Duplication
Line 211
Duplicate code found (appears 2 times)
leading: item.icon == null
Duplication
Line 180
Duplicate code found (appears 2 times)
color: AppColors.transparent,
Duplication
Line 214
Duplicate code found (appears 2 times)
color: AppColors.transparent,
Duplication
Line 182
Duplicate code found (appears 2 times)
: Image.asset(item.icon!),
Duplication
Line 216
Duplicate code found (appears 2 times)
: Image.asset(item.icon!),
Duplication
Line 191
Duplicate code found (appears 2 times)
padding: EdgeInsets.only(top: Ui.getPadding(2)),
Duplication
Line 371
Duplicate code found (appears 2 times)
padding: EdgeInsets.only(top: Ui.getPadding(2)),
Duplication
Line 192
Duplicate code found (appears 2 times)
child: const CenterLoader(),
Duplication
Line 515
Duplicate code found (appears 2 times)
child: const CenterLoader(),
Duplication
Line 208
Duplicate code found (appears 3 times)
style: TextStyles.defaultText
Duplication
Line 406
Duplicate code found (appears 3 times)
style: TextStyles.defaultText
Duplication
Line 414
Duplicate code found (appears 3 times)
style: TextStyles.defaultText
Duplication
Line 242
Duplicate code found (appears 2 times)
backgroundColor: AppColors.white,
Duplication
Line 266
Duplicate code found (appears 2 times)
backgroundColor: AppColors.white,
Duplication
Line 247
Duplicate code found (appears 2 times)
color: AppColors.black,
Duplication
Line 401
Duplicate code found (appears 2 times)
color: AppColors.black,
Duplication
Line 252
Duplicate code found (appears 3 times)
padding: EdgeInsets.symmetric(
Duplication
Line 284
Duplicate code found (appears 3 times)
padding: EdgeInsets.symmetric(
Duplication
Line 346
Duplicate code found (appears 3 times)
padding: EdgeInsets.symmetric(
Duplication
Line 257
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 262
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 258
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 518
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 285
Duplicate code found (appears 2 times)
vertical: Ui.getPadding(1),
Duplication
Line 347
Duplicate code found (appears 2 times)
vertical: Ui.getPadding(1),
Duplication
Line 288
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 350
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 298
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(
Duplication
Line 352
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(
Duplication
Line 306
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 351
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 327
Duplicate code found (appears 2 times)
style: TextStyles.homeGridText,
Duplication
Line 332
Duplicate code found (appears 2 times)
style: TextStyles.homeGridText,
Duplication
Line 329
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 334
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 520
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 405
Duplicate code found (appears 2 times)
getLangStr(context, _items[i].title),
Duplication
Line 413
Duplicate code found (appears 2 times)
getLangStr(context, _items[i].title),
Duplication
Line 407
Duplicate code found (appears 2 times)
.copyWith(fontSize: Ui.getFontSize(1)),
Duplication
Line 415
Duplicate code found (appears 2 times)
.copyWith(fontSize: Ui.getFontSize(1)),
Long Method
Line 239
Method is too long (192 lines)
Widget build(BuildContext context) {
Potential Bug
Line 146
Null check without null-aware operator (?.)
if (item.categoryListFuture != null) {
Potential Bug
Line 438
Null check without null-aware operator (?.)
if (sidebarItem != null) {
Potential Bug
Line 456
Null check without null-aware operator (?.)
if (sidebarSubItem != null) {
Potential Bug
Line 468
Null check without null-aware operator (?.)
if (sidebarSubItem.naviagtionRoute != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\payee_categories_and_payees.dart

Metric Value
Total Lines 97
Code Lines 87
Comment Lines 0
Comment Density 0.0%
Total Issues 1

Issues Found:

Long Method
Line 22
Method is too long (74 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\row_spacer.dart

Metric Value
Total Lines 15
Code Lines 12
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\select_biller_widget.dart

Metric Value
Total Lines 420
Code Lines 346
Comment Lines 39
Comment Density 11.3%
Total Issues 23

Issues Found:

Duplication
Line 115
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(
Duplication
Line 167
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(
Duplication
Line 116
Duplicate code found (appears 2 times)
vertical: Ui.getPadding(2),
Duplication
Line 168
Duplicate code found (appears 2 times)
vertical: Ui.getPadding(2),
Duplication
Line 120
Duplicate code found (appears 3 times)
physics: const NeverScrollableScrollPhysics(),
Duplication
Line 136
Duplicate code found (appears 3 times)
physics: const NeverScrollableScrollPhysics(),
Duplication
Line 144
Duplicate code found (appears 3 times)
physics: const NeverScrollableScrollPhysics(),
Duplication
Line 122
Duplicate code found (appears 3 times)
itemBuilder: (context, index) {
Duplication
Line 138
Duplicate code found (appears 3 times)
itemBuilder: (context, index) {
Duplication
Line 150
Duplicate code found (appears 3 times)
itemBuilder: (context, index) {
Duplication
Line 125
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 182
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 229
Duplicate code found (appears 3 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 186
Duplicate code found (appears 2 times)
color: AppColors.orange1,
Duplication
Line 191
Duplicate code found (appears 2 times)
color: AppColors.orange1,
Duplication
Line 280
Duplicate code found (appears 2 times)
_updateBillerLayout();
Duplication
Line 397
Duplicate code found (appears 2 times)
_updateBillerLayout();
Duplication
Line 331
Duplicate code found (appears 2 times)
_updateLoading(false);
Duplication
Line 416
Duplicate code found (appears 2 times)
_updateLoading(false);
Long Method
Line 66
Method is too long (148 lines)
Widget build(BuildContext context) {
Potential Bug
Line 85
Null check without null-aware operator (?.)
widget.onAddTap != null
Potential Bug
Line 279
Null check without null-aware operator (?.)
if (widget.billerCategoryFromSidebar != null) {
Potential Bug
Line 341
Null check without null-aware operator (?.)
.where((b) => (b.categoryId != null) && (b.categoryId == c.id))

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\shimmer_effect.dart

Metric Value
Total Lines 11
Code Lines 10
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\slider_dot_navigation.dart

Metric Value
Total Lines 35
Code Lines 32
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\top_nav_icon.dart

Metric Value
Total Lines 26
Code Lines 23
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\transfer_source_selection.dart

Metric Value
Total Lines 346
Code Lines 327
Comment Lines 6
Comment Density 1.8%
Total Issues 38

Issues Found:

Duplication
Line 46
Duplicate code found (appears 2 times)
_fetchSourceListFuture = _fetchFtSourceList();
Duplication
Line 73
Duplicate code found (appears 2 times)
_fetchSourceListFuture = _fetchFtSourceList();
Duplication
Line 52
Duplicate code found (appears 2 times)
padding: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 124
Duplicate code found (appears 2 times)
padding: EdgeInsets.all(Ui.getPadding(2)),
Duplication
Line 54
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 159
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 87
Duplicate code found (appears 2 times)
itemBuilder: (context, index) {
Duplication
Line 274
Duplicate code found (appears 2 times)
itemBuilder: (context, index) {
Duplication
Line 109
Duplicate code found (appears 2 times)
valueListenable: widget.selectSourceNotifier,
Duplication
Line 266
Duplicate code found (appears 2 times)
valueListenable: widget.selectSourceNotifier,
Duplication
Line 110
Duplicate code found (appears 2 times)
builder: (context, source, _) {
Duplication
Line 267
Duplicate code found (appears 2 times)
builder: (context, source, _) {
Duplication
Line 113
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 137
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 114
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 138
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 130
Duplicate code found (appears 3 times)
backgroundColor: AppColors.white,
Duplication
Line 317
Duplicate code found (appears 3 times)
backgroundColor: AppColors.white,
Duplication
Line 322
Duplicate code found (appears 3 times)
backgroundColor: AppColors.white,
Duplication
Line 156
Duplicate code found (appears 2 times)
SizedBox(width: Ui.getPadding(3)),
Duplication
Line 185
Duplicate code found (appears 2 times)
SizedBox(width: Ui.getPadding(3)),
Duplication
Line 235
Duplicate code found (appears 2 times)
final PaymentSource paySource = sourceList!.firstWhere(
Duplication
Line 243
Duplicate code found (appears 2 times)
final PaymentSource paySource = sourceList!.firstWhere(
Duplication
Line 237
Duplicate code found (appears 2 times)
orElse: () => sourceList!.first,
Duplication
Line 245
Duplicate code found (appears 2 times)
orElse: () => sourceList!.first,
Duplication
Line 240
Duplicate code found (appears 2 times)
widget.selectSourceNotifier.value = paySource;
Duplication
Line 247
Duplicate code found (appears 2 times)
widget.selectSourceNotifier.value = paySource;
Duplication
Line 241
Duplicate code found (appears 2 times)
widget.onSelected(paySource);
Duplication
Line 248
Duplicate code found (appears 2 times)
widget.onSelected(paySource);
Duplication
Line 290
Duplicate code found (appears 2 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 307
Duplicate code found (appears 2 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 291
Duplicate code found (appears 2 times)
color: (!(thisSource.isActive ?? true)
Duplication
Line 308
Duplicate code found (appears 2 times)
color: (!(thisSource.isActive ?? true)
Duplication
Line 316
Duplicate code found (appears 2 times)
radius: ScreenUtil.width * 0.08,
Duplication
Line 321
Duplicate code found (appears 2 times)
radius: ScreenUtil.width * 0.08,
Long Method
Line 50
Method is too long (51 lines)
Widget build(BuildContext context) {
Potential Bug
Line 220
Null check without null-aware operator (?.)
if (points != null) {
Potential Bug
Line 234
Null check without null-aware operator (?.)
if (widget.initialSource != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\user_profile_group.dart

Metric Value
Total Lines 95
Code Lines 84
Comment Lines 1
Comment Density 1.2%
Total Issues 3

Issues Found:

Unused Import
Line 1
Unused import: dart:async
import "dart:async";
Long Method
Line 36
Method is too long (27 lines)
void initState() {
Long Method
Line 66
Method is too long (28 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\view_description_text.dart

Metric Value
Total Lines 26
Code Lines 23
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\banking\banking_background.dart

Metric Value
Total Lines 33
Code Lines 30
Comment Lines 0
Comment Density 0.0%
Total Issues 2

Issues Found:

Duplication
Line 21
Duplicate code found (appears 2 times)
borderRadius: _borderRadius,
Duplication
Line 26
Duplicate code found (appears 2 times)
borderRadius: _borderRadius,

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\banking\bank_account_slide.dart

Metric Value
Total Lines 116
Code Lines 112
Comment Lines 0
Comment Density 0.0%
Total Issues 8

Issues Found:

Duplication
Line 24
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(Ui.getPadding(1.25)),
Duplication
Line 31
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(Ui.getPadding(1.25)),
Duplication
Line 27
Duplicate code found (appears 2 times)
height: Ui.getPadding(5),
Duplication
Line 42
Duplicate code found (appears 2 times)
height: Ui.getPadding(5),
Duplication
Line 51
Duplicate code found (appears 2 times)
width: Ui.getPadding(12.5),
Duplication
Line 61
Duplicate code found (appears 2 times)
width: Ui.getPadding(12.5),
Duplication
Line 97
Duplicate code found (appears 2 times)
fontSize: Ui.getPadding(0.85),
Duplication
Line 105
Duplicate code found (appears 2 times)
fontSize: Ui.getPadding(0.85),

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\banking\bank_account_slider.dart

Metric Value
Total Lines 55
Code Lines 52
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\banking\sdb_bank_logo.dart

Metric Value
Total Lines 1
Code Lines 0
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\banking\sdb_logo.dart

Metric Value
Total Lines 22
Code Lines 20
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\common_widget\dropdown_bottomsheets.dart

Metric Value
Total Lines 437
Code Lines 400
Comment Lines 14
Comment Density 3.5%
Total Issues 42

Issues Found:

Duplication
Line 97
Duplicate code found (appears 2 times)
if (widget.initialValue != null) {
Duplication
Line 106
Duplicate code found (appears 2 times)
if (widget.initialValue != null) {
Duplication
Line 98
Duplicate code found (appears 2 times)
widget.selectedValue = widget.initialValue;
Duplication
Line 107
Duplicate code found (appears 2 times)
widget.selectedValue = widget.initialValue;
Duplication
Line 129
Duplicate code found (appears 3 times)
(widget.selectedValue != null))
Duplication
Line 189
Duplicate code found (appears 3 times)
(widget.selectedValue != null))
Duplication
Line 193
Duplicate code found (appears 3 times)
(widget.selectedValue != null))
Duplication
Line 134
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 224
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 171
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 314
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 174
Duplicate code found (appears 2 times)
? const ColumnSpacer(
Duplication
Line 200
Duplicate code found (appears 2 times)
? const ColumnSpacer(
Duplication
Line 177
Duplicate code found (appears 2 times)
: const ColumnSpacer(
Duplication
Line 203
Duplicate code found (appears 2 times)
: const ColumnSpacer(
Duplication
Line 218
Duplicate code found (appears 2 times)
const ColumnSpacer(1),
Duplication
Line 229
Duplicate code found (appears 2 times)
const ColumnSpacer(1),
Duplication
Line 220
Duplicate code found (appears 2 times)
padding: const EdgeInsets.symmetric(
Duplication
Line 317
Duplicate code found (appears 2 times)
padding: const EdgeInsets.symmetric(
Duplication
Line 221
Duplicate code found (appears 2 times)
horizontal: Ui.padding,
Duplication
Line 319
Duplicate code found (appears 2 times)
horizontal: Ui.padding,
Duplication
Line 225
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(8),
Duplication
Line 434
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(8),
Duplication
Line 270
Duplicate code found (appears 2 times)
color: AppColors.transparent,
Duplication
Line 312
Duplicate code found (appears 2 times)
color: AppColors.transparent,
Duplication
Line 276
Duplicate code found (appears 3 times)
padding: const EdgeInsets.only(
Duplication
Line 348
Duplicate code found (appears 3 times)
padding: const EdgeInsets.only(
Duplication
Line 367
Duplicate code found (appears 3 times)
padding: const EdgeInsets.only(
Duplication
Line 324
Duplicate code found (appears 3 times)
color: AppColors.grey,
Duplication
Line 374
Duplicate code found (appears 3 times)
color: AppColors.grey,
Duplication
Line 404
Duplicate code found (appears 3 times)
color: AppColors.grey,
Duplication
Line 346
Duplicate code found (appears 2 times)
alignment: Alignment.centerLeft,
Duplication
Line 365
Duplicate code found (appears 2 times)
alignment: Alignment.centerLeft,
Long Method
Line 118
Method is too long (224 lines)
Widget build(BuildContext context) {
Dead Code
Line 427
Private method '_getBorder' is never called
InputBorder _getBorder() {
Potential Bug
Line 97
Null check without null-aware operator (?.)
if (widget.initialValue != null) {
Potential Bug
Line 106
Null check without null-aware operator (?.)
if (widget.initialValue != null) {
Potential Bug
Line 129
Null check without null-aware operator (?.)
(widget.selectedValue != null))
Potential Bug
Line 183
Null check without null-aware operator (?.)
(widget.selectedValue != null)) &&
Potential Bug
Line 189
Null check without null-aware operator (?.)
(widget.selectedValue != null))
Potential Bug
Line 193
Null check without null-aware operator (?.)
(widget.selectedValue != null))
Potential Bug
Line 430
Null check without null-aware operator (?.)
color: (widget.selectedValue != null)

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\common_widget\drop_down_field.dart

Metric Value
Total Lines 367
Code Lines 357
Comment Lines 0
Comment Density 0.0%
Total Issues 42

Issues Found:

Duplication
Line 76
Duplicate code found (appears 2 times)
widget.onChanged?.call(value);
Duplication
Line 143
Duplicate code found (appears 2 times)
widget.onChanged?.call(value);
Duplication
Line 78
Duplicate code found (appears 2 times)
_hasError = widget.validator != null &&
Duplication
Line 145
Duplicate code found (appears 2 times)
_hasError = widget.validator != null &&
Duplication
Line 128
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(12),
Duplication
Line 132
Duplicate code found (appears 2 times)
borderRadius: BorderRadius.circular(12),
Duplication
Line 131
Duplicate code found (appears 2 times)
focusedBorder: OutlineInputBorder(
Duplication
Line 318
Duplicate code found (appears 2 times)
focusedBorder: OutlineInputBorder(
Duplication
Line 171
Duplicate code found (appears 2 times)
child: CachedNetworkImage(
Duplication
Line 236
Duplicate code found (appears 2 times)
child: CachedNetworkImage(
Duplication
Line 174
Duplicate code found (appears 2 times)
placeholder: (context, url) => SizedBox(
Duplication
Line 238
Duplicate code found (appears 2 times)
placeholder: (context, url) => SizedBox(
Duplication
Line 175
Duplicate code found (appears 4 times)
height: Ui.getPadding(4),
Duplication
Line 181
Duplicate code found (appears 4 times)
height: Ui.getPadding(4),
Duplication
Line 239
Duplicate code found (appears 4 times)
height: Ui.getPadding(4),
Duplication
Line 244
Duplicate code found (appears 4 times)
height: Ui.getPadding(4),
Duplication
Line 176
Duplicate code found (appears 4 times)
width: Ui.getPadding(4),
Duplication
Line 182
Duplicate code found (appears 4 times)
width: Ui.getPadding(4),
Duplication
Line 240
Duplicate code found (appears 4 times)
width: Ui.getPadding(4),
Duplication
Line 245
Duplicate code found (appears 4 times)
width: Ui.getPadding(4),
Duplication
Line 177
Duplicate code found (appears 2 times)
child: const CircularProgressIndicator(),
Duplication
Line 241
Duplicate code found (appears 2 times)
child: const CircularProgressIndicator(),
Duplication
Line 255
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.1),
Duplication
Line 259
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.1),
Duplication
Line 307
Duplicate code found (appears 2 times)
color: AppColors.black.withOpacity(0.5),
Duplication
Line 312
Duplicate code found (appears 2 times)
color: AppColors.black.withOpacity(0.5),
Duplication
Line 314
Duplicate code found (appears 2 times)
border: fieldBorder(),
Duplication
Line 363
Duplicate code found (appears 2 times)
border: fieldBorder(),
Duplication
Line 319
Duplicate code found (appears 4 times)
borderRadius: BorderRadius.circular(Ui.getRadius(1.5)),
Duplication
Line 333
Duplicate code found (appears 4 times)
borderRadius: BorderRadius.circular(Ui.getRadius(1.5)),
Duplication
Line 337
Duplicate code found (appears 4 times)
borderRadius: BorderRadius.circular(Ui.getRadius(1.5)),
Duplication
Line 341
Duplicate code found (appears 4 times)
borderRadius: BorderRadius.circular(Ui.getRadius(1.5)),
Duplication
Line 320
Duplicate code found (appears 2 times)
borderSide: const BorderSide(color: AppColors.red),
Duplication
Line 340
Duplicate code found (appears 2 times)
borderSide: const BorderSide(color: AppColors.red),
Long Method
Line 60
Method is too long (159 lines)
Widget build(BuildContext context) {
Potential Bug
Line 78
Null check without null-aware operator (?.)
_hasError = widget.validator != null &&
Potential Bug
Line 79
Null check without null-aware operator (?.)
widget.validator!(null) != null;
Potential Bug
Line 83
Null check without null-aware operator (?.)
if (widget.validator != null) {
Potential Bug
Line 90
Null check without null-aware operator (?.)
if (error != null) {
Potential Bug
Line 145
Null check without null-aware operator (?.)
_hasError = widget.validator != null &&
Potential Bug
Line 146
Null check without null-aware operator (?.)
widget.validator!(value) != null;
Potential Bug
Line 160
Null check without null-aware operator (?.)
if (widget.prefixIcon != null) ...[

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\fund_transfers\beneficiary_update_header.dart

Metric Value
Total Lines 85
Code Lines 79
Comment Lines 0
Comment Density 0.0%
Total Issues 6

Issues Found:

Duplication
Line 17
Duplicate code found (appears 2 times)
return BeneficiaryUpdateHeaderIcon(
Duplication
Line 25
Duplicate code found (appears 2 times)
return BeneficiaryUpdateHeaderIcon(
Duplication
Line 20
Duplicate code found (appears 2 times)
color: AppColors.red,
Duplication
Line 28
Duplicate code found (appears 2 times)
color: AppColors.red,
Duplication
Line 62
Duplicate code found (appears 2 times)
BeneficiaryUpdateHeaderIcon(
Duplication
Line 77
Duplicate code found (appears 2 times)
BeneficiaryUpdateHeaderIcon(

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\fund_transfers\beneficiary_update_header_icon.dart

Metric Value
Total Lines 41
Code Lines 38
Comment Lines 0
Comment Density 0.0%
Total Issues 1

Issues Found:

Potential Bug
Line 31
Null check without null-aware operator (?.)
if (iconName != null)

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\input_fields\amount_input_field.dart

Metric Value
Total Lines 95
Code Lines 89
Comment Lines 1
Comment Density 1.1%
Total Issues 5

Issues Found:

Duplication
Line 59
Duplicate code found (appears 2 times)
return getLangReplaced(
Duplication
Line 69
Duplicate code found (appears 2 times)
return getLangReplaced(
Long Method
Line 40
Method is too long (54 lines)
Widget build(BuildContext context) {
Potential Bug
Line 57
Null check without null-aware operator (?.)
if (minAmount != null) {
Potential Bug
Line 67
Null check without null-aware operator (?.)
if (maxAmount != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\input_fields\custom_pin_code_field.dart

Metric Value
Total Lines 79
Code Lines 74
Comment Lines 0
Comment Density 0.0%
Total Issues 11

Issues Found:

Duplication
Line 48
Duplicate code found (appears 2 times)
fontWeight: FontWeight.bold,
Duplication
Line 54
Duplicate code found (appears 2 times)
fontWeight: FontWeight.bold,
Duplication
Line 50
Duplicate code found (appears 2 times)
color: Theme.of(context).colorScheme.secondary,
Duplication
Line 53
Duplicate code found (appears 2 times)
color: Theme.of(context).colorScheme.secondary,
Duplication
Line 66
Duplicate code found (appears 3 times)
? Theme.of(context).colorScheme.secondary
Duplication
Line 69
Duplicate code found (appears 3 times)
? Theme.of(context).colorScheme.secondary
Duplication
Line 72
Duplicate code found (appears 3 times)
? Theme.of(context).colorScheme.secondary
Duplication
Line 67
Duplicate code found (appears 3 times)
: Colors.transparent,
Duplication
Line 70
Duplicate code found (appears 3 times)
: Colors.transparent,
Duplication
Line 73
Duplicate code found (appears 3 times)
: Colors.transparent,
Long Method
Line 30
Method is too long (48 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\input_fields\input_text_field.dart

Metric Value
Total Lines 162
Code Lines 155
Comment Lines 0
Comment Density 0.0%
Total Issues 4

Issues Found:

Duplication
Line 97
Duplicate code found (appears 2 times)
color: AppColors.grey1,
Duplication
Line 122
Duplicate code found (appears 2 times)
color: AppColors.grey1,
Long Method
Line 69
Method is too long (74 lines)
Widget build(BuildContext context) {
Potential Bug
Line 132
Null check without null-aware operator (?.)
if (suffixIcon != null) ...[suffixIcon!],

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\input_fields\label_text_field.dart

Metric Value
Total Lines 198
Code Lines 192
Comment Lines 0
Comment Density 0.0%
Total Issues 3

Issues Found:

Long Method
Line 78
Method is too long (109 lines)
Widget build(BuildContext context) {
Potential Bug
Line 125
Null check without null-aware operator (?.)
prefixIcon: widget.prefixIcon != null
Potential Bug
Line 179
Null check without null-aware operator (?.)
if (widget.focus != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\input_fields\mobile_input_field.dart

Metric Value
Total Lines 178
Code Lines 167
Comment Lines 1
Comment Density 0.6%
Total Issues 1

Issues Found:

Long Method
Line 118
Method is too long (59 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\input_fields\password_input_field.dart

Metric Value
Total Lines 121
Code Lines 115
Comment Lines 1
Comment Density 0.9%
Total Issues 6

Issues Found:

Duplication
Line 43
Duplicate code found (appears 2 times)
return ValueListenableBuilder(
Duplication
Line 46
Duplicate code found (appears 2 times)
return ValueListenableBuilder(
Duplication
Line 85
Duplicate code found (appears 2 times)
color: AppColors.grey1,
Duplication
Line 100
Duplicate code found (appears 2 times)
color: AppColors.grey1,
Long Method
Line 42
Method is too long (78 lines)
Widget build(BuildContext context) {
Potential Bug
Line 103
Null check without null-aware operator (?.)
if (suffixIcon != null) suffixIcon!,

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\layouts\app_page_layout.dart

Metric Value
Total Lines 85
Code Lines 81
Comment Lines 0
Comment Density 0.0%
Total Issues 10

Issues Found:

Duplication
Line 63
Duplicate code found (appears 2 times)
height: contentHeight,
Duplication
Line 74
Duplicate code found (appears 2 times)
height: contentHeight,
Duplication
Line 64
Duplicate code found (appears 2 times)
width: ScreenUtil.width,
Duplication
Line 75
Duplicate code found (appears 2 times)
width: ScreenUtil.width,
Duplication
Line 65
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 76
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 68
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 78
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Long Method
Line 42
Method is too long (42 lines)
Widget build(BuildContext context) {
Potential Bug
Line 33
Null check without null-aware operator (?.)
if (onBackPress != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\layouts\app_page_layout_v2.dart

Metric Value
Total Lines 96
Code Lines 93
Comment Lines 0
Comment Density 0.0%
Total Issues 11

Issues Found:

Duplication
Line 60
Duplicate code found (appears 2 times)
height: contentHeight,
Duplication
Line 71
Duplicate code found (appears 2 times)
height: contentHeight,
Duplication
Line 61
Duplicate code found (appears 2 times)
width: ScreenUtil.width,
Duplication
Line 72
Duplicate code found (appears 2 times)
width: ScreenUtil.width,
Duplication
Line 62
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 73
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 65
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 75
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 66
Duplicate code found (appears 2 times)
children: widget.children,
Duplication
Line 76
Duplicate code found (appears 2 times)
children: widget.children,
Long Method
Line 39
Method is too long (56 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\layouts\banking_layout.dart

Metric Value
Total Lines 94
Code Lines 75
Comment Lines 15
Comment Density 20.0%
Total Issues 3

Issues Found:

Duplication
Line 59
Duplicate code found (appears 2 times)
backgroundColor: AppColors.transparent,
Duplication
Line 62
Duplicate code found (appears 2 times)
backgroundColor: AppColors.transparent,
Long Method
Line 25
Method is too long (68 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\layouts\page_header.dart

Metric Value
Total Lines 232
Code Lines 227
Comment Lines 1
Comment Density 0.4%
Total Issues 42

Issues Found:

Duplication
Line 37
Duplicate code found (appears 3 times)
style: TextStyles.preDefaultText.copyWith(
Duplication
Line 43
Duplicate code found (appears 3 times)
style: TextStyles.preDefaultText.copyWith(
Duplication
Line 52
Duplicate code found (appears 3 times)
style: TextStyles.preDefaultText.copyWith(
Duplication
Line 38
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(0.99),
Duplication
Line 53
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(0.99),
Duplication
Line 46
Duplicate code found (appears 2 times)
recognizer: TapGestureRecognizer()
Duplication
Line 60
Duplicate code found (appears 2 times)
recognizer: TapGestureRecognizer()
Duplication
Line 73
Duplicate code found (appears 2 times)
backgroundColor: AppColors.black,
Duplication
Line 128
Duplicate code found (appears 2 times)
backgroundColor: AppColors.black,
Duplication
Line 80
Duplicate code found (appears 2 times)
Icons.chevron_left_sharp,
Duplication
Line 95
Duplicate code found (appears 2 times)
Icons.chevron_left_sharp,
Duplication
Line 81
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 96
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 84
Duplicate code found (appears 2 times)
if (onBackPress != null) {
Duplication
Line 99
Duplicate code found (appears 2 times)
if (onBackPress != null) {
Duplication
Line 120
Duplicate code found (appears 4 times)
width: Ui.getPadding(3),
Duplication
Line 159
Duplicate code found (appears 4 times)
width: Ui.getPadding(3),
Duplication
Line 188
Duplicate code found (appears 4 times)
width: Ui.getPadding(3),
Duplication
Line 217
Duplicate code found (appears 4 times)
width: Ui.getPadding(3),
Duplication
Line 137
Duplicate code found (appears 3 times)
backgroundColor: AppColors.grey1.withOpacity(0.35),
Duplication
Line 165
Duplicate code found (appears 3 times)
backgroundColor: AppColors.grey1.withOpacity(0.35),
Duplication
Line 194
Duplicate code found (appears 3 times)
backgroundColor: AppColors.grey1.withOpacity(0.35),
Duplication
Line 139
Duplicate code found (appears 3 times)
highlightColor: AppColors.grey1,
Duplication
Line 167
Duplicate code found (appears 3 times)
highlightColor: AppColors.grey1,
Duplication
Line 196
Duplicate code found (appears 3 times)
highlightColor: AppColors.grey1,
Duplication
Line 141
Duplicate code found (appears 3 times)
ExploreAppUserBlocker.blockIfExploreAppUser(
Duplication
Line 169
Duplicate code found (appears 3 times)
ExploreAppUserBlocker.blockIfExploreAppUser(
Duplication
Line 198
Duplicate code found (appears 3 times)
ExploreAppUserBlocker.blockIfExploreAppUser(
Duplication
Line 144
Duplicate code found (appears 3 times)
if (fromLoginScreen ?? false) {
Duplication
Line 172
Duplicate code found (appears 3 times)
if (fromLoginScreen ?? false) {
Duplication
Line 201
Duplicate code found (appears 3 times)
if (fromLoginScreen ?? false) {
Duplication
Line 148
Duplicate code found (appears 3 times)
if ((ModalRoute.of(context)?.settings.name !=
Duplication
Line 176
Duplicate code found (appears 3 times)
if ((ModalRoute.of(context)?.settings.name !=
Duplication
Line 205
Duplicate code found (appears 3 times)
if ((ModalRoute.of(context)?.settings.name !=
Duplication
Line 150
Duplicate code found (appears 3 times)
pushReplacementScreen(
Duplication
Line 178
Duplicate code found (appears 3 times)
pushReplacementScreen(
Duplication
Line 207
Duplicate code found (appears 3 times)
pushReplacementScreen(
Duplication
Line 163
Duplicate code found (appears 2 times)
SizedBox(width: Ui.getPadding(2)),
Duplication
Line 192
Duplicate code found (appears 2 times)
SizedBox(width: Ui.getPadding(2)),
Long Method
Line 29
Method is too long (197 lines)
Widget build(BuildContext context) {
Potential Bug
Line 84
Null check without null-aware operator (?.)
if (onBackPress != null) {
Potential Bug
Line 99
Null check without null-aware operator (?.)
if (onBackPress != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\layouts\page_layout.dart

Metric Value
Total Lines 94
Code Lines 76
Comment Lines 13
Comment Density 17.1%
Total Issues 1

Issues Found:

Long Method
Line 41
Method is too long (52 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\layouts\simple_tab_layout.dart

Metric Value
Total Lines 99
Code Lines 83
Comment Lines 12
Comment Density 14.5%
Total Issues 3

Issues Found:

Duplication
Line 54
Duplicate code found (appears 2 times)
controller: tabController,
Duplication
Line 66
Duplicate code found (appears 2 times)
controller: tabController,
Long Method
Line 22
Method is too long (40 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\layouts\transaction_status_layout.dart

Metric Value
Total Lines 86
Code Lines 51
Comment Lines 32
Comment Density 62.7%
Total Issues 1

Issues Found:

Long Method
Line 22
Method is too long (63 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\my_account\bank_account_balanace_tile.dart

Metric Value
Total Lines 144
Code Lines 140
Comment Lines 0
Comment Density 0.0%
Total Issues 10

Issues Found:

Duplication
Line 32
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 50
Duplicate code found (appears 2 times)
decoration: BoxDecoration(
Duplication
Line 33
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 51
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 69
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 115
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 73
Duplicate code found (appears 2 times)
style: TextStyles.defaultText,
Duplication
Line 128
Duplicate code found (appears 2 times)
style: TextStyles.defaultText,
Long Method
Line 30
Method is too long (113 lines)
Widget build(BuildContext context) {
Potential Bug
Line 77
Null check without null-aware operator (?.)
visible: widget.account.availableBalance != null,

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\my_account\bordered_container.dart

Metric Value
Total Lines 24
Code Lines 21
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\my_account\device_description.dart

Metric Value
Total Lines 58
Code Lines 55
Comment Lines 0
Comment Density 0.0%
Total Issues 2

Issues Found:

Duplication
Line 36
Duplicate code found (appears 2 times)
width: Ui.getPadding(25),
Duplication
Line 45
Duplicate code found (appears 2 times)
width: Ui.getPadding(25),

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\my_account\item_container_wrapper.dart

Metric Value
Total Lines 28
Code Lines 25
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\my_account\my_info_item_container.dart

Metric Value
Total Lines 52
Code Lines 49
Comment Lines 0
Comment Density 0.0%
Total Issues 1

Issues Found:

Potential Bug
Line 38
Null check without null-aware operator (?.)
(summaryDetail) => summaryDetail.rightText != null

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\my_account\my_info_summary_row.dart

Metric Value
Total Lines 53
Code Lines 50
Comment Lines 0
Comment Density 0.0%
Total Issues 2

Issues Found:

Duplication
Line 26
Duplicate code found (appears 2 times)
width: Ui.getPadding(20),
Duplication
Line 35
Duplicate code found (appears 2 times)
width: Ui.getPadding(20),

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\my_payees\added_payees_area.dart

Metric Value
Total Lines 167
Code Lines 154
Comment Lines 0
Comment Density 0.0%
Total Issues 9

Issues Found:

Duplication
Line 77
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 142
Duplicate code found (appears 2 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 134
Duplicate code found (appears 2 times)
onEditPayeeTap: _onEditPayeeTap,
Duplication
Line 159
Duplicate code found (appears 2 times)
onEditPayeeTap: _onEditPayeeTap,
Duplication
Line 135
Duplicate code found (appears 2 times)
onDeletePayeeTap: _deleteConfirmation,
Duplication
Line 160
Duplicate code found (appears 2 times)
onDeletePayeeTap: _deleteConfirmation,
Dead Code
Line 36
Private method '_onEditPayeeTap' is never called
void _onEditPayeeTap(Biller biller) =>
Dead Code
Line 62
Private method '_deleteConfirmation' is never called
void _deleteConfirmation(Biller biller) {
Dead Code
Line 115
Private method '_onPayTap' is never called
void _onPayTap(Biller biller) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\my_payees\added_payee_action_button.dart

Metric Value
Total Lines 43
Code Lines 36
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\my_payees\added_payee_card.dart

Metric Value
Total Lines 169
Code Lines 155
Comment Lines 2
Comment Density 1.3%
Total Issues 17

Issues Found:

Duplication
Line 19
Duplicate code found (appears 2 times)
return const BorderRadius.only(
Duplication
Line 25
Duplicate code found (appears 2 times)
return const BorderRadius.only(
Duplication
Line 84
Duplicate code found (appears 3 times)
alignment: Alignment.centerLeft,
Duplication
Line 98
Duplicate code found (appears 3 times)
alignment: Alignment.centerLeft,
Duplication
Line 111
Duplicate code found (appears 3 times)
alignment: Alignment.centerLeft,
Duplication
Line 86
Duplicate code found (appears 3 times)
padding: EdgeInsets.only(left: _leftPadding),
Duplication
Line 100
Duplicate code found (appears 3 times)
padding: EdgeInsets.only(left: _leftPadding),
Duplication
Line 113
Duplicate code found (appears 3 times)
padding: EdgeInsets.only(left: _leftPadding),
Duplication
Line 129
Duplicate code found (appears 2 times)
width: constraints.maxWidth * 0.1,
Duplication
Line 136
Duplicate code found (appears 2 times)
width: constraints.maxWidth * 0.1,
Duplication
Line 139
Duplicate code found (appears 3 times)
AddedPayeeActionButton(
Duplication
Line 147
Duplicate code found (appears 3 times)
AddedPayeeActionButton(
Duplication
Line 155
Duplicate code found (appears 3 times)
AddedPayeeActionButton(
Duplication
Line 140
Duplicate code found (appears 3 times)
addedPayeeActionButtonType:
Duplication
Line 148
Duplicate code found (appears 3 times)
addedPayeeActionButtonType:
Duplication
Line 156
Duplicate code found (appears 3 times)
addedPayeeActionButtonType:
Long Method
Line 65
Method is too long (103 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\my_payees\add_payee_and_search_area.dart

Metric Value
Total Lines 84
Code Lines 75
Comment Lines 2
Comment Density 2.7%
Total Issues 1

Issues Found:

Long Method
Line 43
Method is too long (40 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\my_payees\selected_service_area.dart

Metric Value
Total Lines 42
Code Lines 39
Comment Lines 0
Comment Density 0.0%
Total Issues 1

Issues Found:

Long Method
Line 18
Method is too long (23 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\my_payees\selected_service_card.dart

Metric Value
Total Lines 78
Code Lines 72
Comment Lines 3
Comment Density 4.2%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\qr_payments\close_button.dart

Metric Value
Total Lines 18
Code Lines 15
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\qr_payments\qr_merchant_area.dart

Metric Value
Total Lines 24
Code Lines 21
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\qr_payments\qr_merchant_background.dart

Metric Value
Total Lines 18
Code Lines 16
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\qr_payments\qr_merchant_details.dart

Metric Value
Total Lines 66
Code Lines 61
Comment Lines 1
Comment Density 1.6%
Total Issues 2

Issues Found:

Duplication
Line 47
Duplicate code found (appears 2 times)
style: TextStyles.summaryTextStyle,
Duplication
Line 62
Duplicate code found (appears 2 times)
style: TextStyles.summaryTextStyle,

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\qr_payments\qr_scanner_view.dart

Metric Value
Total Lines 105
Code Lines 89
Comment Lines 0
Comment Density 0.0%
Total Issues 1

Issues Found:

Dead Code
Line 31
Private method '_onDecodedQrDataReceive' is never called
void _onDecodedQrDataReceive(ScannedQrDetail scannedQrDetail) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\qr_payments\upay_express_detail_card.dart

Metric Value
Total Lines 97
Code Lines 91
Comment Lines 0
Comment Density 0.0%
Total Issues 8

Issues Found:

Duplication
Line 9
Duplicate code found (appears 2 times)
}) : super(key: key);
Duplication
Line 80
Duplicate code found (appears 2 times)
}) : super(key: key);
Duplication
Line 25
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 92
Duplicate code found (appears 2 times)
color: AppColors.white,
Duplication
Line 29
Duplicate code found (appears 2 times)
offset: const Offset(0, 1),
Duplication
Line 34
Duplicate code found (appears 2 times)
offset: const Offset(0, 1),
Duplication
Line 44
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w500,
Duplication
Line 57
Duplicate code found (appears 2 times)
fontWeight: FontWeight.w500,

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\transaction_history\after_tran_action_icon.dart

Metric Value
Total Lines 44
Code Lines 40
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\transaction_history\header_wrapper.dart

Metric Value
Total Lines 26
Code Lines 23
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\transaction_history\transaction_history_detail.dart

Metric Value
Total Lines 44
Code Lines 40
Comment Lines 1
Comment Density 2.5%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\transaction_history\transaction_history_tile.dart

Metric Value
Total Lines 136
Code Lines 118
Comment Lines 14
Comment Density 11.9%
Total Issues 6

Issues Found:

Duplication
Line 45
Duplicate code found (appears 2 times)
style: TextStyles.primaryTextStyle.copyWith(
Duplication
Line 75
Duplicate code found (appears 2 times)
style: TextStyles.primaryTextStyle.copyWith(
Duplication
Line 47
Duplicate code found (appears 3 times)
fontSize: Ui.getFontSize(1),
Duplication
Line 56
Duplicate code found (appears 3 times)
fontSize: Ui.getFontSize(1),
Duplication
Line 77
Duplicate code found (appears 3 times)
fontSize: Ui.getFontSize(1),
Long Method
Line 22
Method is too long (104 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\u_earn\redeem_type_selection.dart

Metric Value
Total Lines 107
Code Lines 103
Comment Lines 1
Comment Density 1.0%
Total Issues 12

Issues Found:

Duplication
Line 48
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 59
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 54
Duplicate code found (appears 3 times)
fontWeight: FontWeight.normal,
Duplication
Line 67
Duplicate code found (appears 3 times)
fontWeight: FontWeight.normal,
Duplication
Line 87
Duplicate code found (appears 3 times)
fontWeight: FontWeight.normal,
Duplication
Line 66
Duplicate code found (appears 2 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 86
Duplicate code found (appears 2 times)
style: TextStyles.defaultSmallText.copyWith(
Duplication
Line 73
Duplicate code found (appears 2 times)
visible: uEarnRedeemType ==
Duplication
Line 80
Duplicate code found (appears 2 times)
visible: uEarnRedeemType ==
Duplication
Line 74
Duplicate code found (appears 2 times)
UEarnRedeemType.upayPayment,
Duplication
Line 81
Duplicate code found (appears 2 times)
UEarnRedeemType.upayPayment,
Long Method
Line 25
Method is too long (81 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\u_earn\registered_invitee_status_tile.dart

Metric Value
Total Lines 114
Code Lines 112
Comment Lines 0
Comment Density 0.0%
Total Issues 17

Issues Found:

Duplication
Line 27
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 43
Duplicate code found (appears 2 times)
crossAxisAlignment: CrossAxisAlignment.start,
Duplication
Line 50
Duplicate code found (appears 3 times)
height: ScreenUtil.width * 0.10,
Duplication
Line 72
Duplicate code found (appears 3 times)
height: ScreenUtil.width * 0.10,
Duplication
Line 82
Duplicate code found (appears 3 times)
height: ScreenUtil.width * 0.10,
Duplication
Line 51
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.10,
Duplication
Line 73
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.10,
Duplication
Line 83
Duplicate code found (appears 3 times)
width: ScreenUtil.width * 0.10,
Duplication
Line 55
Duplicate code found (appears 2 times)
height: Ui.getPadding(0.7),
Duplication
Line 87
Duplicate code found (appears 2 times)
height: Ui.getPadding(0.7),
Duplication
Line 59
Duplicate code found (appears 2 times)
style: TextStyles.defaultSmallText
Duplication
Line 91
Duplicate code found (appears 2 times)
style: TextStyles.defaultSmallText
Duplication
Line 60
Duplicate code found (appears 2 times)
.copyWith(fontWeight: FontWeight.normal),
Duplication
Line 92
Duplicate code found (appears 2 times)
.copyWith(fontWeight: FontWeight.normal),
Duplication
Line 65
Duplicate code found (appears 2 times)
width: Ui.getPadding(1),
Duplication
Line 98
Duplicate code found (appears 2 times)
width: Ui.getPadding(1),
Long Method
Line 23
Method is too long (90 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\u_earn\u_earn_detail.dart

Metric Value
Total Lines 58
Code Lines 57
Comment Lines 0
Comment Density 0.0%
Total Issues 5

Issues Found:

Duplication
Line 41
Duplicate code found (appears 2 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 48
Duplicate code found (appears 2 times)
style: TextStyles.defaultMediumText.copyWith(
Duplication
Line 42
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.3),
Duplication
Line 49
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(1.3),
Long Method
Line 18
Method is too long (39 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\screens\widgets\u_earn\u_earn_option_button.dart

Metric Value
Total Lines 51
Code Lines 47
Comment Lines 1
Comment Density 2.1%
Total Issues 1

Issues Found:

Long Method
Line 20
Method is too long (30 lines)
Widget build(BuildContext context) {

C:\Users\PM_User\Documents\upay-mobile\lib\services\analytics_service.dart

Metric Value
Total Lines 10
Code Lines 8
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\services\api_service.dart

Metric Value
Total Lines 698
Code Lines 585
Comment Lines 26
Comment Density 4.4%
Total Issues 121

Issues Found:

Duplication
Line 29
Duplicate code found (appears 3 times)
BuildContext context, {
Duplication
Line 162
Duplicate code found (appears 3 times)
BuildContext context, {
Duplication
Line 415
Duplicate code found (appears 3 times)
BuildContext context, {
Duplication
Line 30
Duplicate code found (appears 2 times)
required Function(String? title, String? message, Map data) success,
Duplication
Line 166
Duplicate code found (appears 2 times)
required Function(String? title, String? message, Map data) success,
Duplication
Line 31
Duplicate code found (appears 2 times)
required Function(String title, String message, Map data) failed,
Duplication
Line 167
Duplicate code found (appears 2 times)
required Function(String title, String message, Map data) failed,
Duplication
Line 32
Duplicate code found (appears 3 times)
VoidCallback? complete,
Duplication
Line 169
Duplicate code found (appears 3 times)
VoidCallback? complete,
Duplication
Line 420
Duplicate code found (appears 3 times)
VoidCallback? complete,
Duplication
Line 34
Duplicate code found (appears 2 times)
bool withAuth = true,
Duplication
Line 171
Duplicate code found (appears 2 times)
bool withAuth = true,
Duplication
Line 45
Duplicate code found (appears 3 times)
final Map? data = apiResponse.data;
Duplication
Line 49
Duplicate code found (appears 3 times)
final Map? data = apiResponse.data;
Duplication
Line 115
Duplicate code found (appears 3 times)
final Map? data = apiResponse.data;
Duplication
Line 52
Duplicate code found (appears 2 times)
final String message = apiResponse.data?["message"].toString() ??
Duplication
Line 119
Duplicate code found (appears 2 times)
final String message = apiResponse.data?["message"].toString() ??
Duplication
Line 53
Duplicate code found (appears 2 times)
ErrorMessages.unexpectedError;
Duplication
Line 120
Duplicate code found (appears 2 times)
ErrorMessages.unexpectedError;
Duplication
Line 127
Duplicate code found (appears 2 times)
failed("Failed", ErrorMessages.unexpectedError, map);
Duplication
Line 147
Duplicate code found (appears 2 times)
failed("Failed", ErrorMessages.unexpectedError, map);
Duplication
Line 198
Duplicate code found (appears 2 times)
BuildContext context,
Duplication
Line 588
Duplicate code found (appears 2 times)
BuildContext context,
Duplication
Line 205
Duplicate code found (appears 2 times)
final Map deviceInfo = getAppState(context).getDeviceInfo;
Duplication
Line 602
Duplicate code found (appears 2 times)
final Map deviceInfo = getAppState(context).getDeviceInfo;
Duplication
Line 228
Duplicate code found (appears 2 times)
final String requestId = DateTime.now().microsecondsSinceEpoch.toString();
Duplication
Line 518
Duplicate code found (appears 2 times)
final String requestId = DateTime.now().microsecondsSinceEpoch.toString();
Duplication
Line 229
Duplicate code found (appears 2 times)
final String? sequenceId = getAppState(context).sequenceId;
Duplication
Line 466
Duplicate code found (appears 2 times)
final String? sequenceId = getAppState(context).sequenceId;
Duplication
Line 231
Duplicate code found (appears 2 times)
final String? token = getAppState(context).token;
Duplication
Line 471
Duplicate code found (appears 2 times)
final String? token = getAppState(context).token;
Duplication
Line 245
Duplicate code found (appears 2 times)
final String requestHash = await AppSecurityPlugin().getPayloadHash(
Duplication
Line 528
Duplicate code found (appears 2 times)
final String requestHash = await AppSecurityPlugin().getPayloadHash(
Duplication
Line 247
Duplicate code found (appears 2 times)
secretKey: Constants.hmacSecret,
Duplication
Line 530
Duplicate code found (appears 2 times)
secretKey: Constants.hmacSecret,
Duplication
Line 253
Duplicate code found (appears 2 times)
final Map headers = {
Duplication
Line 533
Duplicate code found (appears 2 times)
final Map headers = {
Duplication
Line 254
Duplicate code found (appears 3 times)
"Content-Type": "application/json",
Duplication
Line 534
Duplicate code found (appears 3 times)
"Content-Type": "application/json",
Duplication
Line 616
Duplicate code found (appears 3 times)
"Content-Type": "application/json",
Duplication
Line 258
Duplicate code found (appears 3 times)
"Platform": deviceInfo["platform"],
Duplication
Line 538
Duplicate code found (appears 3 times)
"Platform": deviceInfo["platform"],
Duplication
Line 620
Duplicate code found (appears 3 times)
"Platform": deviceInfo["platform"],
Duplication
Line 259
Duplicate code found (appears 3 times)
"Device-Id": deviceInfo["device_id"],
Duplication
Line 539
Duplicate code found (appears 3 times)
"Device-Id": deviceInfo["device_id"],
Duplication
Line 621
Duplicate code found (appears 3 times)
"Device-Id": deviceInfo["device_id"],
Duplication
Line 268
Duplicate code found (appears 2 times)
headers["Authorization"] = "Bearer $token";
Duplication
Line 543
Duplicate code found (appears 2 times)
headers["Authorization"] = "Bearer $token";
Duplication
Line 271
Duplicate code found (appears 2 times)
final response = await http
Duplication
Line 550
Duplicate code found (appears 2 times)
final response = await http
Duplication
Line 279
Duplicate code found (appears 3 times)
const Duration(seconds: 120),
Duplication
Line 424
Duplicate code found (appears 3 times)
const Duration(seconds: 120),
Duplication
Line 558
Duplicate code found (appears 3 times)
const Duration(seconds: 120),
Duplication
Line 281
Duplicate code found (appears 2 times)
printLog("Request timed out ***");
Duplication
Line 426
Duplicate code found (appears 2 times)
printLog("Request timed out ***");
Duplication
Line 282
Duplicate code found (appears 3 times)
return http.Response(
Duplication
Line 427
Duplicate code found (appears 3 times)
return http.Response(
Duplication
Line 561
Duplicate code found (appears 3 times)
return http.Response(
Duplication
Line 284
Duplicate code found (appears 3 times)
ApiResponseCodes.requestTimeOut,
Duplication
Line 429
Duplicate code found (appears 3 times)
ApiResponseCodes.requestTimeOut,
Duplication
Line 563
Duplicate code found (appears 3 times)
ApiResponseCodes.requestTimeOut,
Duplication
Line 298
Duplicate code found (appears 2 times)
if (response.statusCode == ApiResponseCodes.requestTimeOut) {
Duplication
Line 436
Duplicate code found (appears 2 times)
if (response.statusCode == ApiResponseCodes.requestTimeOut) {
Duplication
Line 302
Duplicate code found (appears 2 times)
if ((response.statusCode == ApiResponseCodes.forbidden)) {
Duplication
Line 441
Duplicate code found (appears 2 times)
if ((response.statusCode == ApiResponseCodes.forbidden)) {
Duplication
Line 308
Duplicate code found (appears 7 times)
await Future.delayed(const Duration(seconds: 1));
Duplication
Line 315
Duplicate code found (appears 7 times)
await Future.delayed(const Duration(seconds: 1));
Duplication
Line 322
Duplicate code found (appears 7 times)
await Future.delayed(const Duration(seconds: 1));
Duplication
Line 383
Duplicate code found (appears 7 times)
await Future.delayed(const Duration(seconds: 1));
Duplication
Line 390
Duplicate code found (appears 7 times)
await Future.delayed(const Duration(seconds: 1));
Duplication
Line 397
Duplicate code found (appears 7 times)
await Future.delayed(const Duration(seconds: 1));
Duplication
Line 468
Duplicate code found (appears 7 times)
await Future.delayed(const Duration(seconds: 1));
Duplication
Line 312
Duplicate code found (appears 4 times)
return makeApiRequest(context, url, jsonMap, withSsl, withAuth);
Duplication
Line 319
Duplicate code found (appears 4 times)
return makeApiRequest(context, url, jsonMap, withSsl, withAuth);
Duplication
Line 326
Duplicate code found (appears 4 times)
return makeApiRequest(context, url, jsonMap, withSsl, withAuth);
Duplication
Line 341
Duplicate code found (appears 4 times)
return makeApiRequest(context, url, jsonMap, withSsl, withAuth);
Duplication
Line 314
Duplicate code found (appears 2 times)
printLog("********* Token Update first attempt unsuccessfull");
Duplication
Line 389
Duplicate code found (appears 2 times)
printLog("********* Token Update first attempt unsuccessfull");
Duplication
Line 317
Duplicate code found (appears 4 times)
await getRefreshToken(deviceInfo, context);
Duplication
Line 324
Duplicate code found (appears 4 times)
await getRefreshToken(deviceInfo, context);
Duplication
Line 392
Duplicate code found (appears 4 times)
await getRefreshToken(deviceInfo, context);
Duplication
Line 399
Duplicate code found (appears 4 times)
await getRefreshToken(deviceInfo, context);
Duplication
Line 318
Duplicate code found (appears 2 times)
if (secondAttemptToRefresh) {
Duplication
Line 393
Duplicate code found (appears 2 times)
if (secondAttemptToRefresh) {
Duplication
Line 321
Duplicate code found (appears 2 times)
printLog("********* Token Update second attempt unsuccessfull");
Duplication
Line 396
Duplicate code found (appears 2 times)
printLog("********* Token Update second attempt unsuccessfull");
Duplication
Line 325
Duplicate code found (appears 2 times)
if (thirdAttemptToRefresh) {
Duplication
Line 400
Duplicate code found (appears 2 times)
if (thirdAttemptToRefresh) {
Duplication
Line 331
Duplicate code found (appears 2 times)
getAppState(context).refreshToken = null;
Duplication
Line 406
Duplicate code found (appears 2 times)
getAppState(context).refreshToken = null;
Duplication
Line 332
Duplicate code found (appears 2 times)
getAppState(context).token = null;
Duplication
Line 407
Duplicate code found (appears 2 times)
getAppState(context).token = null;
Duplication
Line 334
Duplicate code found (appears 2 times)
moveToScreen(context, ScreenRoutes.toSplashScreen);
Duplication
Line 409
Duplicate code found (appears 2 times)
moveToScreen(context, ScreenRoutes.toSplashScreen);
Duplication
Line 363
Duplicate code found (appears 2 times)
} on SocketException catch (e) {
Duplication
Line 452
Duplicate code found (appears 2 times)
} on SocketException catch (e) {
Duplication
Line 365
Duplicate code found (appears 2 times)
printLog("SocketException ***");
Duplication
Line 454
Duplicate code found (appears 2 times)
printLog("SocketException ***");
Duplication
Line 366
Duplicate code found (appears 2 times)
printLog(e.toString());
Duplication
Line 455
Duplicate code found (appears 2 times)
printLog(e.toString());
Duplication
Line 368
Duplicate code found (appears 2 times)
} catch (exception, s) {
Duplication
Line 456
Duplicate code found (appears 2 times)
} catch (exception, s) {
Duplication
Line 371
Duplicate code found (appears 2 times)
printLog("Exception: ${exception.toString()}");
Duplication
Line 459
Duplicate code found (appears 2 times)
printLog("Exception: ${exception.toString()}");
Duplication
Line 434
Duplicate code found (appears 2 times)
printLog("${response.statusCode.toString()} - ${response.body}");
Duplication
Line 571
Duplicate code found (appears 2 times)
printLog("${response.statusCode.toString()} - ${response.body}");
Duplication
Line 437
Duplicate code found (appears 2 times)
failed("Failed", ErrorMessages.unexpectedError);
Duplication
Line 442
Duplicate code found (appears 2 times)
failed("Failed", ErrorMessages.unexpectedError);
Duplication
Line 446
Duplicate code found (appears 2 times)
if (response.statusCode == ApiResponseCodes.success) {
Duplication
Line 644
Duplicate code found (appears 2 times)
if (response.statusCode == ApiResponseCodes.success) {
Duplication
Line 537
Duplicate code found (appears 2 times)
"App-Version": deviceInfo["app_version"],
Duplication
Line 619
Duplicate code found (appears 2 times)
"App-Version": deviceInfo["app_version"],
Duplication
Line 624
Duplicate code found (appears 2 times)
final String? accessToken = getAppState(context).token;
Duplication
Line 652
Duplicate code found (appears 2 times)
final String? accessToken = getAppState(context).token;
Duplication
Line 626
Duplicate code found (appears 2 times)
if (accessToken?.isNotEmpty ?? false) {
Duplication
Line 654
Duplicate code found (appears 2 times)
if (accessToken?.isNotEmpty ?? false) {
Unused Import
Line 1
Unused import: dart:collection
import "dart:collection";
Unused Import
Line 2
Unused import: dart:convert
import "dart:convert";
Unused Import
Line 3
Unused import: dart:io
import "dart:io";
Unused Import
Line 4
Unused import: dart:math
import "dart:math";
Potential Bug
Line 153
Null check without null-aware operator (?.)
// if (error != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\services\encryption_service.dart

Metric Value
Total Lines 44
Code Lines 30
Comment Lines 7
Comment Density 23.3%
Total Issues 8

Issues Found:

Duplication
Line 7
Duplicate code found (appears 2 times)
final publicKey = Constants.publicKey.replaceAll("\n", "");
Duplication
Line 15
Duplicate code found (appears 2 times)
final publicKey = Constants.publicKey.replaceAll("\n", "");
Duplication
Line 8
Duplicate code found (appears 2 times)
final encryptedText =
Duplication
Line 16
Duplicate code found (appears 2 times)
final encryptedText =
Duplication
Line 9
Duplicate code found (appears 2 times)
await FlutterEncryptionPlugin.getEncryptedRSAData(publicKey, text);
Duplication
Line 17
Duplicate code found (appears 2 times)
await FlutterEncryptionPlugin.getEncryptedRSAData(publicKey, text);
Duplication
Line 10
Duplicate code found (appears 2 times)
return encryptedText;
Duplication
Line 18
Duplicate code found (appears 2 times)
return encryptedText;

C:\Users\PM_User\Documents\upay-mobile\lib\services\fcm_service.dart

Metric Value
Total Lines 459
Code Lines 360
Comment Lines 51
Comment Density 14.2%
Total Issues 91

Issues Found:

Duplication
Line 56
Duplicate code found (appears 2 times)
@pragma("vm:entry-point")
Duplication
Line 71
Duplicate code found (appears 2 times)
@pragma("vm:entry-point")
Duplication
Line 58
Duplicate code found (appears 4 times)
RemoteMessage message,
Duplication
Line 242
Duplicate code found (appears 4 times)
RemoteMessage message,
Duplication
Line 256
Duplicate code found (appears 4 times)
RemoteMessage message,
Duplication
Line 281
Duplicate code found (appears 4 times)
RemoteMessage message,
Duplication
Line 64
Duplicate code found (appears 3 times)
await _localNotificationsPlugin
Duplication
Line 97
Duplicate code found (appears 3 times)
await _localNotificationsPlugin
Duplication
Line 372
Duplicate code found (appears 3 times)
await _localNotificationsPlugin
Duplication
Line 65
Duplicate code found (appears 3 times)
.resolvePlatformSpecificImplementation<
Duplication
Line 98
Duplicate code found (appears 3 times)
.resolvePlatformSpecificImplementation<
Duplication
Line 373
Duplicate code found (appears 3 times)
.resolvePlatformSpecificImplementation<
Duplication
Line 66
Duplicate code found (appears 3 times)
AndroidFlutterLocalNotificationsPlugin>()
Duplication
Line 99
Duplicate code found (appears 3 times)
AndroidFlutterLocalNotificationsPlugin>()
Duplication
Line 374
Duplicate code found (appears 3 times)
AndroidFlutterLocalNotificationsPlugin>()
Duplication
Line 67
Duplicate code found (appears 3 times)
?.createNotificationChannel(_channel);
Duplication
Line 100
Duplicate code found (appears 3 times)
?.createNotificationChannel(_channel);
Duplication
Line 375
Duplicate code found (appears 3 times)
?.createNotificationChannel(_channel);
Duplication
Line 144
Duplicate code found (appears 2 times)
if (message.data.containsKey("ticket_number")) {
Duplication
Line 261
Duplicate code found (appears 2 times)
if (message.data.containsKey("ticket_number")) {
Duplication
Line 145
Duplicate code found (appears 2 times)
ticketNumber = message.data["ticket_number"];
Duplication
Line 263
Duplicate code found (appears 2 times)
ticketNumber = message.data["ticket_number"];
Duplication
Line 146
Duplicate code found (appears 4 times)
getNotificationState(context).isUconnectNotification = true;
Duplication
Line 262
Duplicate code found (appears 4 times)
getNotificationState(context).isUconnectNotification = true;
Duplication
Line 381
Duplicate code found (appears 4 times)
getNotificationState(context).isUconnectNotification = true;
Duplication
Line 421
Duplicate code found (appears 4 times)
getNotificationState(context).isUconnectNotification = true;
Duplication
Line 159
Duplicate code found (appears 2 times)
: await _downloadAndSavePicture(
Duplication
Line 166
Duplicate code found (appears 2 times)
: await _downloadAndSavePicture(
Duplication
Line 161
Duplicate code found (appears 2 times)
DateTime.now().toIso8601String(),
Duplication
Line 168
Duplicate code found (appears 2 times)
DateTime.now().toIso8601String(),
Duplication
Line 224
Duplicate code found (appears 3 times)
await _handleNotificationNavigation(
Duplication
Line 246
Duplicate code found (appears 3 times)
await _handleNotificationNavigation(
Duplication
Line 266
Duplicate code found (appears 3 times)
await _handleNotificationNavigation(
Duplication
Line 243
Duplicate code found (appears 4 times)
BuildContext context,
Duplication
Line 255
Duplicate code found (appears 4 times)
BuildContext context,
Duplication
Line 280
Duplicate code found (appears 4 times)
BuildContext context,
Duplication
Line 365
Duplicate code found (appears 4 times)
BuildContext context,
Duplication
Line 249
Duplicate code found (appears 3 times)
message.data["ticket_number"],
Duplication
Line 269
Duplicate code found (appears 3 times)
message.data["ticket_number"],
Duplication
Line 275
Duplicate code found (appears 3 times)
message.data["ticket_number"],
Duplication
Line 259
Duplicate code found (appears 2 times)
getNotificationState(context).setIsOnTapNotification(true);
Duplication
Line 283
Duplicate code found (appears 2 times)
getNotificationState(context).setIsOnTapNotification(true);
Duplication
Line 284
Duplicate code found (appears 2 times)
getNotificationState(context).newNotification = true;
Duplication
Line 377
Duplicate code found (appears 2 times)
getNotificationState(context).newNotification = true;
Duplication
Line 380
Duplicate code found (appears 2 times)
if (ticketNum != null && ticketNum.isNotEmpty) {
Duplication
Line 420
Duplicate code found (appears 2 times)
if (ticketNum != null && ticketNum.isNotEmpty) {
Duplication
Line 382
Duplicate code found (appears 2 times)
if (isBackground == false) {
Duplication
Line 422
Duplicate code found (appears 2 times)
if (isBackground == false) {
Duplication
Line 383
Duplicate code found (appears 2 times)
if (ModalRoute.of(navigatorKey.currentState!.context)?.settings.name !=
Duplication
Line 395
Duplicate code found (appears 2 times)
if (ModalRoute.of(navigatorKey.currentState!.context)?.settings.name !=
Duplication
Line 384
Duplicate code found (appears 2 times)
ScreenRoutes.toSplashScreen) {
Duplication
Line 396
Duplicate code found (appears 2 times)
ScreenRoutes.toSplashScreen) {
Duplication
Line 386
Duplicate code found (appears 12 times)
navigatorKey.currentState!.context,
Duplication
Line 391
Duplicate code found (appears 12 times)
navigatorKey.currentState!.context,
Duplication
Line 398
Duplicate code found (appears 12 times)
navigatorKey.currentState!.context,
Duplication
Line 402
Duplicate code found (appears 12 times)
navigatorKey.currentState!.context,
Duplication
Line 411
Duplicate code found (appears 12 times)
navigatorKey.currentState!.context,
Duplication
Line 424
Duplicate code found (appears 12 times)
navigatorKey.currentState!.context,
Duplication
Line 428
Duplicate code found (appears 12 times)
navigatorKey.currentState!.context,
Duplication
Line 433
Duplicate code found (appears 12 times)
navigatorKey.currentState!.context,
Duplication
Line 437
Duplicate code found (appears 12 times)
navigatorKey.currentState!.context,
Duplication
Line 445
Duplicate code found (appears 12 times)
navigatorKey.currentState!.context,
Duplication
Line 451
Duplicate code found (appears 12 times)
navigatorKey.currentState!.context,
Duplication
Line 455
Duplicate code found (appears 12 times)
navigatorKey.currentState!.context,
Duplication
Line 387
Duplicate code found (appears 5 times)
(route) => route.isFirst,
Duplication
Line 399
Duplicate code found (appears 5 times)
(route) => route.isFirst,
Duplication
Line 425
Duplicate code found (appears 5 times)
(route) => route.isFirst,
Duplication
Line 434
Duplicate code found (appears 5 times)
(route) => route.isFirst,
Duplication
Line 452
Duplicate code found (appears 5 times)
(route) => route.isFirst,
Duplication
Line 392
Duplicate code found (appears 2 times)
ScreenRoutes.toUConnectScreen,
Duplication
Line 429
Duplicate code found (appears 2 times)
ScreenRoutes.toUConnectScreen,
Duplication
Line 403
Duplicate code found (appears 3 times)
ScreenRoutes.toSplashScreen,
Duplication
Line 438
Duplicate code found (appears 3 times)
ScreenRoutes.toSplashScreen,
Duplication
Line 456
Duplicate code found (appears 3 times)
ScreenRoutes.toSplashScreen,
Duplication
Line 407
Duplicate code found (appears 2 times)
} else if (url != null && url.isNotEmpty) {
Duplication
Line 441
Duplicate code found (appears 2 times)
} else if (url != null && url.isNotEmpty) {
Duplication
Line 408
Duplicate code found (appears 2 times)
await launchUrl(Uri.parse(url));
Duplication
Line 442
Duplicate code found (appears 2 times)
await launchUrl(Uri.parse(url));
Duplication
Line 412
Duplicate code found (appears 2 times)
ScreenRoutes.toNotificationScreen,
Duplication
Line 446
Duplicate code found (appears 2 times)
ScreenRoutes.toNotificationScreen,
Unused Import
Line 1
Unused import: dart:convert
import "dart:convert";
Unused Import
Line 2
Unused import: dart:io
import "dart:io";
Potential Bug
Line 187
Null check without null-aware operator (?.)
styleInformation: (pa != null) && (smallIcon != null)
Potential Bug
Line 214
Null check without null-aware operator (?.)
if (details.payload != null && details.payload!.isNotEmpty) {
Potential Bug
Line 303
Null check without null-aware operator (?.)
if (message != null) {
Potential Bug
Line 379
Null check without null-aware operator (?.)
if (getAppState(context).token != null) {
Potential Bug
Line 380
Null check without null-aware operator (?.)
if (ticketNum != null && ticketNum.isNotEmpty) {
Potential Bug
Line 407
Null check without null-aware operator (?.)
} else if (url != null && url.isNotEmpty) {
Potential Bug
Line 419
Null check without null-aware operator (?.)
/* if (getAppState(context).token != null) {
Potential Bug
Line 420
Null check without null-aware operator (?.)
if (ticketNum != null && ticketNum.isNotEmpty) {
Potential Bug
Line 441
Null check without null-aware operator (?.)
} else if (url != null && url.isNotEmpty) {

C:\Users\PM_User\Documents\upay-mobile\lib\services\firebase_database_service.dart

Metric Value
Total Lines 45
Code Lines 38
Comment Lines 0
Comment Density 0.0%
Total Issues 1

Issues Found:

Unused Import
Line 1
Unused import: dart:io
import "dart:io";

C:\Users\PM_User\Documents\upay-mobile\lib\services\security_service.dart

Metric Value
Total Lines 52
Code Lines 47
Comment Lines 0
Comment Density 0.0%
Total Issues 3

Issues Found:

Duplication
Line 31
Duplicate code found (appears 2 times)
isDismissible: false,
Duplication
Line 45
Duplicate code found (appears 2 times)
isDismissible: false,
Unused Import
Line 1
Unused import: dart:io
import "dart:io";

C:\Users\PM_User\Documents\upay-mobile\lib\services\validation_service.dart

Metric Value
Total Lines 385
Code Lines 292
Comment Lines 21
Comment Density 7.2%
Total Issues 32

Issues Found:

Duplication
Line 63
Duplicate code found (appears 6 times)
final String formattedCardNumber =
Duplication
Line 77
Duplicate code found (appears 6 times)
final String formattedCardNumber =
Duplication
Line 92
Duplicate code found (appears 6 times)
final String formattedCardNumber =
Duplication
Line 108
Duplicate code found (appears 6 times)
final String formattedCardNumber =
Duplication
Line 122
Duplicate code found (appears 6 times)
final String formattedCardNumber =
Duplication
Line 164
Duplicate code found (appears 6 times)
final String formattedCardNumber =
Duplication
Line 64
Duplicate code found (appears 6 times)
(cardNumber ?? "").replaceAll(" ", "").trim();
Duplication
Line 78
Duplicate code found (appears 6 times)
(cardNumber ?? "").replaceAll(" ", "").trim();
Duplication
Line 93
Duplicate code found (appears 6 times)
(cardNumber ?? "").replaceAll(" ", "").trim();
Duplication
Line 109
Duplicate code found (appears 6 times)
(cardNumber ?? "").replaceAll(" ", "").trim();
Duplication
Line 123
Duplicate code found (appears 6 times)
(cardNumber ?? "").replaceAll(" ", "").trim();
Duplication
Line 165
Duplicate code found (appears 6 times)
(cardNumber ?? "").replaceAll(" ", "").trim();
Duplication
Line 65
Duplicate code found (appears 5 times)
if (formattedCardNumber.isEmpty) {
Duplication
Line 79
Duplicate code found (appears 5 times)
if (formattedCardNumber.isEmpty) {
Duplication
Line 94
Duplicate code found (appears 5 times)
if (formattedCardNumber.isEmpty) {
Duplication
Line 110
Duplicate code found (appears 5 times)
if (formattedCardNumber.isEmpty) {
Duplication
Line 124
Duplicate code found (appears 5 times)
if (formattedCardNumber.isEmpty) {
Duplication
Line 222
Duplicate code found (appears 2 times)
if (password?.isEmpty ?? true) {
Duplication
Line 246
Duplicate code found (appears 2 times)
if (password?.isEmpty ?? true) {
Duplication
Line 268
Duplicate code found (appears 5 times)
errorText = getLangReplaced(
Duplication
Line 274
Duplicate code found (appears 5 times)
errorText = getLangReplaced(
Duplication
Line 283
Duplicate code found (appears 5 times)
errorText = getLangReplaced(
Duplication
Line 294
Duplicate code found (appears 5 times)
errorText = getLangReplaced(
Duplication
Line 303
Duplicate code found (appears 5 times)
errorText = getLangReplaced(
Duplication
Line 334
Duplicate code found (appears 2 times)
printLog("account.length -> ${account.length}");
Duplication
Line 344
Duplicate code found (appears 2 times)
printLog("account.length -> ${account.length}");
Duplication
Line 335
Duplicate code found (appears 2 times)
printLog("accountMinLength -> ${bank.accountMinLength}");
Duplication
Line 345
Duplicate code found (appears 2 times)
printLog("accountMinLength -> ${bank.accountMinLength}");
Duplication
Line 337
Duplicate code found (appears 2 times)
bank.accountMinLength.toString(),
Duplication
Line 347
Duplicate code found (appears 2 times)
bank.accountMinLength.toString(),
Potential Bug
Line 331
Null check without null-aware operator (?.)
if ((bank.accountMinLength != null) &&
Potential Bug
Line 341
Null check without null-aware operator (?.)
if ((bank.accountMaxLength != null) &&

C:\Users\PM_User\Documents\upay-mobile\lib\utils\alert_utils.dart

Metric Value
Total Lines 710
Code Lines 677
Comment Lines 12
Comment Density 1.8%
Total Issues 153

Issues Found:

Duplication
Line 30
Duplicate code found (appears 5 times)
BuildContext context, {
Duplication
Line 268
Duplicate code found (appears 5 times)
BuildContext context, {
Duplication
Line 287
Duplicate code found (appears 5 times)
BuildContext context, {
Duplication
Line 466
Duplicate code found (appears 5 times)
BuildContext context, {
Duplication
Line 657
Duplicate code found (appears 5 times)
BuildContext context, {
Duplication
Line 31
Duplicate code found (appears 2 times)
required String title,
Duplication
Line 467
Duplicate code found (appears 2 times)
required String title,
Duplication
Line 41
Duplicate code found (appears 3 times)
bool isDismissible = true,
Duplication
Line 217
Duplicate code found (appears 3 times)
bool isDismissible = true,
Duplication
Line 659
Duplicate code found (appears 3 times)
bool isDismissible = true,
Duplication
Line 52
Duplicate code found (appears 5 times)
await showModalBottomSheet(
Duplication
Line 224
Duplicate code found (appears 5 times)
await showModalBottomSheet(
Duplication
Line 253
Duplicate code found (appears 5 times)
await showModalBottomSheet(
Duplication
Line 272
Duplicate code found (appears 5 times)
await showModalBottomSheet(
Duplication
Line 294
Duplicate code found (appears 5 times)
await showModalBottomSheet(
Duplication
Line 54
Duplicate code found (appears 2 times)
isDismissible: isDismissible,
Duplication
Line 226
Duplicate code found (appears 2 times)
isDismissible: isDismissible,
Duplication
Line 55
Duplicate code found (appears 2 times)
isScrollControlled: true,
Duplication
Line 296
Duplicate code found (appears 2 times)
isScrollControlled: true,
Duplication
Line 57
Duplicate code found (appears 5 times)
builder: (BuildContext context) {
Duplication
Line 227
Duplicate code found (appears 5 times)
builder: (BuildContext context) {
Duplication
Line 255
Duplicate code found (appears 5 times)
builder: (BuildContext context) {
Duplication
Line 274
Duplicate code found (appears 5 times)
builder: (BuildContext context) {
Duplication
Line 298
Duplicate code found (appears 5 times)
builder: (BuildContext context) {
Duplication
Line 71
Duplicate code found (appears 3 times)
color: AppColors.grey2,
Duplication
Line 408
Duplicate code found (appears 3 times)
color: AppColors.grey2,
Duplication
Line 537
Duplicate code found (appears 3 times)
color: AppColors.grey2,
Duplication
Line 75
Duplicate code found (appears 6 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 327
Duplicate code found (appears 6 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 411
Duplicate code found (appears 6 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 479
Duplicate code found (appears 6 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 540
Duplicate code found (appears 6 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 674
Duplicate code found (appears 6 times)
mainAxisSize: MainAxisSize.min,
Duplication
Line 77
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 481
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(1)),
Duplication
Line 79
Duplicate code found (appears 2 times)
color: AppColors.transparent,
Duplication
Line 128
Duplicate code found (appears 2 times)
color: AppColors.transparent,
Duplication
Line 80
Duplicate code found (appears 6 times)
padding: EdgeInsets.symmetric(
Duplication
Line 129
Duplicate code found (appears 6 times)
padding: EdgeInsets.symmetric(
Duplication
Line 159
Duplicate code found (appears 6 times)
padding: EdgeInsets.symmetric(
Duplication
Line 173
Duplicate code found (appears 6 times)
padding: EdgeInsets.symmetric(
Duplication
Line 381
Duplicate code found (appears 6 times)
padding: EdgeInsets.symmetric(
Duplication
Line 448
Duplicate code found (appears 6 times)
padding: EdgeInsets.symmetric(
Duplication
Line 81
Duplicate code found (appears 4 times)
horizontal: Ui.getPadding(2),
Duplication
Line 131
Duplicate code found (appears 4 times)
horizontal: Ui.getPadding(2),
Duplication
Line 161
Duplicate code found (appears 4 times)
horizontal: Ui.getPadding(2),
Duplication
Line 175
Duplicate code found (appears 4 times)
horizontal: Ui.getPadding(2),
Duplication
Line 84
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 338
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 417
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 546
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Duplication
Line 89
Duplicate code found (appears 5 times)
width: Ui.getPadding(2),
Duplication
Line 345
Duplicate code found (appears 5 times)
width: Ui.getPadding(2),
Duplication
Line 424
Duplicate code found (appears 5 times)
width: Ui.getPadding(2),
Duplication
Line 552
Duplicate code found (appears 5 times)
width: Ui.getPadding(2),
Duplication
Line 573
Duplicate code found (appears 5 times)
width: Ui.getPadding(2),
Duplication
Line 92
Duplicate code found (appears 5 times)
getLangStr(context, title),
Duplication
Line 348
Duplicate code found (appears 5 times)
getLangStr(context, title),
Duplication
Line 427
Duplicate code found (appears 5 times)
getLangStr(context, title),
Duplication
Line 491
Duplicate code found (appears 5 times)
getLangStr(context, title),
Duplication
Line 555
Duplicate code found (appears 5 times)
getLangStr(context, title),
Duplication
Line 106
Duplicate code found (appears 2 times)
style: TextStyles.alertButton
Duplication
Line 114
Duplicate code found (appears 2 times)
style: TextStyles.alertButton
Duplication
Line 107
Duplicate code found (appears 2 times)
.copyWith(color: AppColors.orange),
Duplication
Line 115
Duplicate code found (appears 2 times)
.copyWith(color: AppColors.orange),
Duplication
Line 130
Duplicate code found (appears 5 times)
vertical: Ui.getPadding(1),
Duplication
Line 160
Duplicate code found (appears 5 times)
vertical: Ui.getPadding(1),
Duplication
Line 174
Duplicate code found (appears 5 times)
vertical: Ui.getPadding(1),
Duplication
Line 383
Duplicate code found (appears 5 times)
vertical: Ui.getPadding(1),
Duplication
Line 450
Duplicate code found (appears 5 times)
vertical: Ui.getPadding(1),
Duplication
Line 143
Duplicate code found (appears 2 times)
height: Ui.getPadding(2),
Duplication
Line 147
Duplicate code found (appears 2 times)
height: Ui.getPadding(2),
Duplication
Line 213
Duplicate code found (appears 5 times)
BuildContext context,
Duplication
Line 249
Duplicate code found (appears 5 times)
BuildContext context,
Duplication
Line 313
Duplicate code found (appears 5 times)
BuildContext context,
Duplication
Line 399
Duplicate code found (appears 5 times)
BuildContext context,
Duplication
Line 526
Duplicate code found (appears 5 times)
BuildContext context,
Duplication
Line 228
Duplicate code found (appears 2 times)
if (fromApiService) {
Duplication
Line 241
Duplicate code found (appears 2 times)
if (fromApiService) {
Duplication
Line 232
Duplicate code found (appears 2 times)
return _getBottomSheetLayout(
Duplication
Line 256
Duplicate code found (appears 2 times)
return _getBottomSheetLayout(
Duplication
Line 270
Duplicate code found (appears 5 times)
List? children,
Duplication
Line 290
Duplicate code found (appears 5 times)
List? children,
Duplication
Line 317
Duplicate code found (appears 5 times)
List? children,
Duplication
Line 403
Duplicate code found (appears 5 times)
List? children,
Duplication
Line 468
Duplicate code found (appears 5 times)
List? children,
Duplication
Line 292
Duplicate code found (appears 2 times)
void Function()? onPressedLeftTopTitle,
Duplication
Line 319
Duplicate code found (appears 2 times)
void Function()? onPressedLeftTopTitle,
Duplication
Line 323
Duplicate code found (appears 3 times)
width: ScreenUtil.width,
Duplication
Line 407
Duplicate code found (appears 3 times)
width: ScreenUtil.width,
Duplication
Line 536
Duplicate code found (appears 3 times)
width: ScreenUtil.width,
Duplication
Line 324
Duplicate code found (appears 5 times)
color: AppColors.white,
Duplication
Line 621
Duplicate code found (appears 5 times)
color: AppColors.white,
Duplication
Line 626
Duplicate code found (appears 5 times)
color: AppColors.white,
Duplication
Line 631
Duplicate code found (appears 5 times)
color: AppColors.white,
Duplication
Line 636
Duplicate code found (appears 5 times)
color: AppColors.white,
Duplication
Line 326
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.center,
Duplication
Line 410
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.center,
Duplication
Line 539
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.center,
Duplication
Line 673
Duplicate code found (appears 4 times)
mainAxisAlignment: MainAxisAlignment.center,
Duplication
Line 330
Duplicate code found (appears 3 times)
color: _getAlertColor(type),
Duplication
Line 414
Duplicate code found (appears 3 times)
color: _getAlertColor(type),
Duplication
Line 543
Duplicate code found (appears 3 times)
color: _getAlertColor(type),
Duplication
Line 349
Duplicate code found (appears 2 times)
style: TextStyles.preDefaultTextWhite.copyWith(
Duplication
Line 683
Duplicate code found (appears 2 times)
style: TextStyles.preDefaultTextWhite.copyWith(
Duplication
Line 377
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 444
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 580
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(2)),
Duplication
Line 378
Duplicate code found (appears 2 times)
if (children != null && children.isNotEmpty) ...children,
Duplication
Line 445
Duplicate code found (appears 2 times)
if (children != null && children.isNotEmpty) ...children,
Duplication
Line 379
Duplicate code found (appears 2 times)
if (message != null && message.trim() != "")
Duplication
Line 446
Duplicate code found (appears 2 times)
if (message != null && message.trim() != "")
Duplication
Line 382
Duplicate code found (appears 2 times)
horizontal: Ui.getPadding(1),
Duplication
Line 449
Duplicate code found (appears 2 times)
horizontal: Ui.getPadding(1),
Duplication
Line 386
Duplicate code found (appears 2 times)
getLangStr(context, message),
Duplication
Line 453
Duplicate code found (appears 2 times)
getLangStr(context, message),
Duplication
Line 387
Duplicate code found (appears 3 times)
style: TextStyles.preDefaultText,
Duplication
Line 454
Duplicate code found (appears 3 times)
style: TextStyles.preDefaultText,
Duplication
Line 587
Duplicate code found (appears 3 times)
style: TextStyles.preDefaultText,
Duplication
Line 388
Duplicate code found (appears 5 times)
textAlign: TextAlign.center,
Duplication
Line 455
Duplicate code found (appears 5 times)
textAlign: TextAlign.center,
Duplication
Line 492
Duplicate code found (appears 5 times)
textAlign: TextAlign.center,
Duplication
Line 500
Duplicate code found (appears 5 times)
textAlign: TextAlign.center,
Duplication
Line 584
Duplicate code found (appears 5 times)
textAlign: TextAlign.center,
Duplication
Line 391
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(5)),
Duplication
Line 458
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(5)),
Duplication
Line 596
Duplicate code found (appears 3 times)
SizedBox(height: Ui.getPadding(5)),
Duplication
Line 415
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(horizontal: Ui.getPadding(2)),
Duplication
Line 544
Duplicate code found (appears 2 times)
padding: EdgeInsets.symmetric(horizontal: Ui.getPadding(2)),
Duplication
Line 428
Duplicate code found (appears 2 times)
style: TextStyles.preDefaultTextWhite,
Duplication
Line 556
Duplicate code found (appears 2 times)
style: TextStyles.preDefaultTextWhite,
Duplication
Line 438
Duplicate code found (appears 2 times)
style: TextStyles.alertButton,
Duplication
Line 567
Duplicate code found (appears 2 times)
style: TextStyles.alertButton,
Duplication
Line 489
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(3)),
Duplication
Line 498
Duplicate code found (appears 2 times)
SizedBox(height: Ui.getPadding(3)),
Duplication
Line 493
Duplicate code found (appears 2 times)
style: TextStyles.signUpTextBtn.copyWith(
Duplication
Line 511
Duplicate code found (appears 2 times)
style: TextStyles.signUpTextBtn.copyWith(
Duplication
Line 494
Duplicate code found (appears 2 times)
color: AppColors.orange,
Duplication
Line 512
Duplicate code found (appears 2 times)
color: AppColors.orange,
Duplication
Line 495
Duplicate code found (appears 2 times)
decoration: TextDecoration.none,
Duplication
Line 513
Duplicate code found (appears 2 times)
decoration: TextDecoration.none,
Duplication
Line 605
Duplicate code found (appears 2 times)
if (type == AlertType.info) {
Duplication
Line 618
Duplicate code found (appears 2 times)
if (type == AlertType.info) {
Duplication
Line 606
Duplicate code found (appears 2 times)
return AppColors.blue;
Duplication
Line 614
Duplicate code found (appears 2 times)
return AppColors.blue;
Duplication
Line 607
Duplicate code found (appears 2 times)
} else if (type == AlertType.success) {
Duplication
Line 623
Duplicate code found (appears 2 times)
} else if (type == AlertType.success) {
Duplication
Line 609
Duplicate code found (appears 2 times)
} else if (type == AlertType.error) {
Duplication
Line 628
Duplicate code found (appears 2 times)
} else if (type == AlertType.error) {
Potential Bug
Line 378
Null check without null-aware operator (?.)
if (children != null && children.isNotEmpty) ...children,
Potential Bug
Line 379
Null check without null-aware operator (?.)
if (message != null && message.trim() != "")
Potential Bug
Line 445
Null check without null-aware operator (?.)
if (children != null && children.isNotEmpty) ...children,
Potential Bug
Line 446
Null check without null-aware operator (?.)
if (message != null && message.trim() != "")

C:\Users\PM_User\Documents\upay-mobile\lib\utils\amount_util.dart

Metric Value
Total Lines 50
Code Lines 41
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\utils\auth_util.dart

Metric Value
Total Lines 71
Code Lines 55
Comment Lines 2
Comment Density 3.6%
Total Issues 4

Issues Found:

Duplication
Line 11
Duplicate code found (appears 4 times)
final prefs = await SharedPreferences.getInstance();
Duplication
Line 26
Duplicate code found (appears 4 times)
final prefs = await SharedPreferences.getInstance();
Duplication
Line 35
Duplicate code found (appears 4 times)
final prefs = await SharedPreferences.getInstance();
Duplication
Line 41
Duplicate code found (appears 4 times)
final prefs = await SharedPreferences.getInstance();

C:\Users\PM_User\Documents\upay-mobile\lib\utils\biometric_util.dart

Metric Value
Total Lines 135
Code Lines 111
Comment Lines 0
Comment Density 0.0%
Total Issues 4

Issues Found:

Duplication
Line 36
Duplicate code found (appears 2 times)
} on PlatformException {
Duplication
Line 74
Duplicate code found (appears 2 times)
} on PlatformException {
Unused Import
Line 1
Unused import: dart:convert
import "dart:convert";
Unused Import
Line 2
Unused import: dart:io
import "dart:io";

C:\Users\PM_User\Documents\upay-mobile\lib\utils\crypto_util.dart

Metric Value
Total Lines 38
Code Lines 28
Comment Lines 0
Comment Density 0.0%
Total Issues 3

Issues Found:

Duplication
Line 26
Duplicate code found (appears 2 times)
final Codec stringToBase64 = utf8.fuse(base64);
Duplication
Line 33
Duplicate code found (appears 2 times)
final Codec stringToBase64 = utf8.fuse(base64);
Unused Import
Line 1
Unused import: dart:convert
import "dart:convert";

C:\Users\PM_User\Documents\upay-mobile\lib\utils\date_formatter.dart

Metric Value
Total Lines 13
Code Lines 13
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\utils\decorator_util.dart

Metric Value
Total Lines 10
Code Lines 9
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\utils\device_info_util.dart

Metric Value
Total Lines 431
Code Lines 415
Comment Lines 6
Comment Density 1.4%
Total Issues 7

Issues Found:

Duplication
Line 27
Duplicate code found (appears 2 times)
"device_id": deviceId,
Duplication
Line 39
Duplicate code found (appears 2 times)
"device_id": deviceId,
Duplication
Line 280
Duplicate code found (appears 2 times)
return "iPad Pro 11 inch 4th Gen";
Duplication
Line 320
Duplicate code found (appears 2 times)
return "iPad Pro 11 inch 4th Gen";
Duplication
Line 306
Duplicate code found (appears 2 times)
return "iPad Pro 11 inch 5th Gen";
Duplication
Line 344
Duplicate code found (appears 2 times)
return "iPad Pro 11 inch 5th Gen";
Unused Import
Line 1
Unused import: dart:io
import "dart:io";

C:\Users\PM_User\Documents\upay-mobile\lib\utils\explore_app_user_blocker.dart

Metric Value
Total Lines 72
Code Lines 63
Comment Lines 5
Comment Density 7.9%
Total Issues 7

Issues Found:

Duplication
Line 37
Duplicate code found (appears 3 times)
style: TextStyles.preDefaultText.copyWith(
Duplication
Line 43
Duplicate code found (appears 3 times)
style: TextStyles.preDefaultText.copyWith(
Duplication
Line 52
Duplicate code found (appears 3 times)
style: TextStyles.preDefaultText.copyWith(
Duplication
Line 38
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(0.99),
Duplication
Line 53
Duplicate code found (appears 2 times)
fontSize: Ui.getFontSize(0.99),
Duplication
Line 46
Duplicate code found (appears 2 times)
recognizer: TapGestureRecognizer()
Duplication
Line 60
Duplicate code found (appears 2 times)
recognizer: TapGestureRecognizer()

C:\Users\PM_User\Documents\upay-mobile\lib\utils\file_util.dart

Metric Value
Total Lines 111
Code Lines 94
Comment Lines 0
Comment Density 0.0%
Total Issues 3

Issues Found:

Unused Import
Line 1
Unused import: dart:io
import "dart:io";
Potential Bug
Line 49
Null check without null-aware operator (?.)
if (name != null) {
Potential Bug
Line 52
Null check without null-aware operator (?.)
if (ext != null) {

C:\Users\PM_User\Documents\upay-mobile\lib\utils\json_double_value_parser.dart

Metric Value
Total Lines 3
Code Lines 3
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\utils\launcher_util.dart

Metric Value
Total Lines 111
Code Lines 96
Comment Lines 2
Comment Density 2.1%
Total Issues 12

Issues Found:

Duplication
Line 21
Duplicate code found (appears 2 times)
if (await canLaunchUrl(Uri.parse(url))) {
Duplication
Line 40
Duplicate code found (appears 2 times)
if (await canLaunchUrl(Uri.parse(url))) {
Duplication
Line 22
Duplicate code found (appears 2 times)
await launchUrlString(
Duplication
Line 41
Duplicate code found (appears 2 times)
await launchUrlString(
Duplication
Line 27
Duplicate code found (appears 2 times)
throw "Could not launch -> $url";
Duplication
Line 47
Duplicate code found (appears 2 times)
throw "Could not launch -> $url";
Duplication
Line 75
Duplicate code found (appears 2 times)
style: const TextStyle(
Duplication
Line 90
Duplicate code found (appears 2 times)
style: const TextStyle(
Duplication
Line 76
Duplicate code found (appears 2 times)
decoration: TextDecoration.underline,
Duplication
Line 91
Duplicate code found (appears 2 times)
decoration: TextDecoration.underline,
Duplication
Line 79
Duplicate code found (appears 2 times)
recognizer: TapGestureRecognizer()
Duplication
Line 94
Duplicate code found (appears 2 times)
recognizer: TapGestureRecognizer()

C:\Users\PM_User\Documents\upay-mobile\lib\utils\log_util.dart

Metric Value
Total Lines 15
Code Lines 13
Comment Lines 0
Comment Density 0.0%
Total Issues 2

Issues Found:

Unused Import
Line 1
Unused import: dart:developer
import "dart:developer";
Potential Bug
Line 10
Null check without null-aware operator (?.)
stackTrace: stackTrace != null

C:\Users\PM_User\Documents\upay-mobile\lib\utils\navigation_util.dart

Metric Value
Total Lines 75
Code Lines 65
Comment Lines 0
Comment Density 0.0%
Total Issues 7

Issues Found:

Duplication
Line 15
Duplicate code found (appears 3 times)
BuildContext context,
Duplication
Line 26
Duplicate code found (appears 3 times)
BuildContext context,
Duplication
Line 52
Duplicate code found (appears 3 times)
BuildContext context,
Duplication
Line 21
Duplicate code found (appears 4 times)
arguments: arguments,
Duplication
Line 32
Duplicate code found (appears 4 times)
arguments: arguments,
Duplication
Line 40
Duplicate code found (appears 4 times)
arguments: arguments,
Duplication
Line 61
Duplicate code found (appears 4 times)
arguments: arguments,

C:\Users\PM_User\Documents\upay-mobile\lib\utils\overlay_object.dart

Metric Value
Total Lines 80
Code Lines 67
Comment Lines 5
Comment Density 7.5%
Total Issues 2

Issues Found:

Long Method
Line 26
Method is too long (21 lines)
OverlayEntry createOverlayErrorTip(BuildContext context) {
Long Method
Line 52
Method is too long (24 lines)
void paint(Canvas canvas, Size size) {

C:\Users\PM_User\Documents\upay-mobile\lib\utils\package_info_util.dart

Metric Value
Total Lines 16
Code Lines 13
Comment Lines 0
Comment Density 0.0%
Total Issues 2

Issues Found:

Duplication
Line 8
Duplicate code found (appears 2 times)
final PackageInfo packageInfo = await PackageInfo.fromPlatform();
Duplication
Line 13
Duplicate code found (appears 2 times)
final PackageInfo packageInfo = await PackageInfo.fromPlatform();

C:\Users\PM_User\Documents\upay-mobile\lib\utils\platform_util.dart

Metric Value
Total Lines 5
Code Lines 4
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\utils\screen_util.dart

Metric Value
Total Lines 9
Code Lines 7
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\utils\security_util.dart

Metric Value
Total Lines 1
Code Lines 1
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\utils\session_time_out_util.dart

Metric Value
Total Lines 29
Code Lines 24
Comment Lines 0
Comment Density 0.0%
Total Issues 1

Issues Found:

Unused Import
Line 1
Unused import: dart:async
import "dart:async";

C:\Users\PM_User\Documents\upay-mobile\lib\utils\share_util.dart

Metric Value
Total Lines 15
Code Lines 11
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\utils\validate_util.dart

Metric Value
Total Lines 4
Code Lines 3
Comment Lines 0
Comment Density 0.0%
Total Issues 0

Issues Found:

C:\Users\PM_User\Documents\upay-mobile\lib\utils\input_formatter\date_format_util.dart

Metric Value
Total Lines 22
Code Lines 19
Comment Lines 1
Comment Density 5.3%
Total Issues 2

Issues Found:

Duplication
Line 6
Duplicate code found (appears 2 times)
return formattedDate;
Duplication
Line 16
Duplicate code found (appears 2 times)
return formattedDate;

C:\Users\PM_User\Documents\upay-mobile\lib\utils\input_formatter\input_formatter_util.dart

Metric Value
Total Lines 200
Code Lines 165
Comment Lines 3
Comment Density 1.8%
Total Issues 32

Issues Found:

Duplication
Line 7
Duplicate code found (appears 7 times)
TextEditingValue formatEditUpdate(
Duplication
Line 23
Duplicate code found (appears 7 times)
TextEditingValue formatEditUpdate(
Duplication
Line 37
Duplicate code found (appears 7 times)
TextEditingValue formatEditUpdate(
Duplication
Line 55
Duplicate code found (appears 7 times)
TextEditingValue formatEditUpdate(
Duplication
Line 122
Duplicate code found (appears 7 times)
TextEditingValue formatEditUpdate(
Duplication
Line 139
Duplicate code found (appears 7 times)
TextEditingValue formatEditUpdate(
Duplication
Line 173
Duplicate code found (appears 7 times)
TextEditingValue formatEditUpdate(
Duplication
Line 8
Duplicate code found (appears 6 times)
TextEditingValue oldValue,
Duplication
Line 24
Duplicate code found (appears 6 times)
TextEditingValue oldValue,
Duplication
Line 38
Duplicate code found (appears 6 times)
TextEditingValue oldValue,
Duplication
Line 56
Duplicate code found (appears 6 times)
TextEditingValue oldValue,
Duplication
Line 123
Duplicate code found (appears 6 times)
TextEditingValue oldValue,
Duplication
Line 140
Duplicate code found (appears 6 times)
TextEditingValue oldValue,
Duplication
Line 9
Duplicate code found (appears 6 times)
TextEditingValue newValue,
Duplication
Line 25
Duplicate code found (appears 6 times)
TextEditingValue newValue,
Duplication
Line 39
Duplicate code found (appears 6 times)
TextEditingValue newValue,
Duplication
Line 57
Duplicate code found (appears 6 times)
TextEditingValue newValue,
Duplication
Line 124
Duplicate code found (appears 6 times)
TextEditingValue newValue,
Duplication
Line 141
Duplicate code found (appears 6 times)
TextEditingValue newValue,
Duplication
Line 11
Duplicate code found (appears 2 times)
if (_alphaNumericRegex.hasMatch(newValue.text)) {
Duplication
Line 27
Duplicate code found (appears 2 times)
if (_alphaNumericRegex.hasMatch(newValue.text)) {
Duplication
Line 15
Duplicate code found (appears 2 times)
return newValue.text.isEmpty ? newValue : oldValue;
Duplication
Line 31
Duplicate code found (appears 2 times)
return newValue.text.isEmpty ? newValue : oldValue;
Duplication
Line 41
Duplicate code found (appears 5 times)
return TextEditingValue(
Duplication
Line 91
Duplicate code found (appears 5 times)
return TextEditingValue(
Duplication
Line 109
Duplicate code found (appears 5 times)
return TextEditingValue(
Duplication
Line 128
Duplicate code found (appears 5 times)
return TextEditingValue(
Duplication
Line 152
Duplicate code found (appears 5 times)
return TextEditingValue(
Duplication
Line 93
Duplicate code found (appears 2 times)
selection: TextSelection.collapsed(offset: newString.length),
Duplication
Line 111
Duplicate code found (appears 2 times)
selection: TextSelection.collapsed(offset: newString.length),
Potential Bug
Line 105
Null check without null-aware operator (?.)
if (parsedAmount != null && parsedAmount > maxValue!) {
Potential Bug
Line 127
Null check without null-aware operator (?.)
if (intValue != null && intValue > maxValue) {

C:\Users\PM_User\Documents\upay-mobile\test\widget_test.dart

Metric Value
Total Lines 30
Code Lines 14
Comment Lines 10
Comment Density 71.4%
Total Issues 0

Issues Found: